Skip to content
On this page

Comment utiliser shareReplay en RxJS ?

Pour utiliser la fonction shareReplay() dans RxJS, vous devez d'abord importer l'operator à partir de 'rxjs':

js
import { shareReplay } from 'rxjs';

Ensuite, vous pouvez utiliser shareReplay() en le combinant avec un observable en utilisant l'opérateur de chaînage pipe():

js
obs$
  .pipe(shareReplay())
  .subscribe(...);

Cela permet de partager la même source observable avec plusieurs abonnés. Cela peut être utile lorsque vous avez un observable qui prend du temps à produire des valeurs ou qui produit des valeurs coûteuses à calculer, et que vous voulez éviter de recalculer ces valeurs pour chaque abonné.

Vous pouvez également spécifier le nombre de valeurs à mémoriser avec le premier paramètre, qui permet de définir combien de valeurs de l'observable seront mémorisées et partagées avec les abonnés. Par exemple:

js
obs$
  .pipe(shareReplay(2))
  .subscribe(...);

Cela permet de mémoriser les deux dernières valeurs produites par l'observable et de les partager avec les abonnés.

TIP

Il est important de noter que shareReplay() n'est pas une fonction de création d'observable, mais plutôt un opérateur qui peut être utilisé avec un observable existant pour le transformer en un observable partagé. Cela signifie que vous devez d'abord créer un observable en utilisant l'une des fonctions de création d'observable de RxJS, comme of() ou from(), avant de pouvoir utiliser shareReplay() pour le transformer en un observable partagé.