Skip to content
On this page

C'est quoi un Scheduler sur RxJS ?

Un Scheduler est un objet RxJS qui permet de définir le moment où une opération asynchrone doit être exécutée. C'est un objet qui contrôle quand et comment un observable envoie des valeurs à un observer. Un Scheduler peut être utilisé pour différer ou reprogrammer les notifications d'un observable, ou pour exécuter du code asynchrone de manière synchrone. Cela peut être utile pour gérer les performances d'une application, pour s'assurer que les notifications d'un observable sont envoyées dans un ordre spécifique, ou pour s'assurer que les notifications d'un observable sont envoyées dans un thread spécifique. En utilisant un Scheduler, vous pouvez écrire du code observable qui s'exécute de manière prévisible et contrôlable.

Voici un exemple d'utilisation d'un Scheduler :

js
import { Observable, Scheduler } from 'rxjs'

const observable = new Observable(subscriber => {
  subscriber.next(1);
  subscriber.next(2);
  subscriber.next(3);
  setTimeout(() => {
    subscriber.next(4);
    subscriber.complete();
  }, 1000);
});

const subscriber = x => console.log(x);

// Créer un Scheduler qui exécute les notifications de l'observable
// dans un intervalle de temps de 100ms
const scheduler = Scheduler.interval(100);

console.log('Début de l\'observable');
observable.subscribe(subscriber, scheduler);
console.log('Fin du script');

Dans cet exemple, l'observable envoie les valeurs 1, 2 et 3 dès que l'observer s'abonne à l'observable, puis envoie la valeur 4 après un délai d'une seconde avant de se terminer. La fonction subscriber affiche chaque valeur reçue dans la console. Le Scheduler exécute les notifications de l'observable toutes les 100ms, ce qui signifie que les valeurs 1, 2 et 3 seront affichées 100ms l'une après l'autre, puis la valeur 4 sera affichée 100ms après la valeur 3.