Skip to content
On this page

Comment utiliser windowTime sur RxJS ?

Pour utiliser l'opérateur windowTime dans RxJS, vous devez d'abord importer l'opérateur en utilisant l'instruction import suivante:

js
import { windowTime } from 'rxjs';

Ensuite, vous pouvez utiliser l'opérateur en le passant en tant qu'opérateur intermédiaire dans la chaîne de traitement des données de votre observable. L'opérateur windowTime prend un argument qui définit la durée en temps que doit couvrir chaque fenêtre. Par exemple, si vous souhaitez diviser les éléments de votre observable en fenêtres de 10 secondes, vous pouvez utiliser l'opérateur de la manière suivante:

js
source.pipe(
  windowTime(10000),
)

Notez que windowTime retourne un observable de fenêtres, et non pas un observable de valeurs individuelles. Chaque fenêtre est elle-même un observable qui émet des valeurs à mesure qu'elles arrivent dans la fenêtre temporelle spécifiée. Pour traiter les valeurs émises par les fenêtres, vous pouvez utiliser un opérateur comme mergeAll ou concatAll pour regrouper les valeurs de chaque fenêtre dans un observable principal.

Voici un exemple complet montrant comment utiliser windowTime pour diviser un observable en fenêtres temporelles de 10 secondes et traiter les valeurs émises par chaque fenêtre:

js
import { interval, windowTime, mergeAll } from 'rxjs';

const source = interval(1000);
const result = source.pipe(
  windowTime(10000),
  mergeAll(),
);

result.subscribe(x => console.log(x));

Dans cet exemple, nous utilisons interval pour créer un observable qui émet une valeur toutes les secondes. Nous utilisons ensuite windowTime pour diviser ces valeurs en fenêtres de 10 secondes. Enfin, nous utilisons mergeAll pour regrouper les valeurs émises par chaque fenêtre dans un observable principal, que nous pouvons ensuite souscrire pour afficher les valeurs émises.