Skip to content
On this page

Comment utiliser delayWhen en RxJS ?

delayWhen est une opération de temps différé asynchrone dans RxJS qui prend un observateur et retourne un nouvel observateur qui diffère la diffusion des valeurs de l'observateur d'origine jusqu'à ce que la fonction de retard renvoyée par l'observateur donné émette une valeur.

Voici comment utiliser delayWhen dans RxJS :

js
import { of, delayWhen } from 'rxjs';

// Observable d'origine qui émet la valeur 1
const source = of(1);

// Observable de retard qui émet la valeur 0 après 1 seconde
const delay = val => {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve(0);
    }, 1000);
  });
};

// Utilisation de delayWhen pour différer la diffusion de la valeur de l'observable d'origine
// jusqu'à ce que l'observable de retard émette une valeur
const example = source.pipe(delayWhen(delay));

// Souscription à l'observable résultant
example.subscribe(val => {
  console.log(val);
});

Dans cet exemple, l'observable d'origine émet la valeur 1. L'opération delayWhen utilise l'observable de retard pour différer la diffusion de cette valeur jusqu'à ce que l'observable de retard émette la valeur 0, ce qui se produit après 1 seconde.