Skip to content
On this page

Comment utiliser l'opérateur dematerialize sur RxJS ?

L'opérateur dematerialize de RxJS permet de convertir les émissions d'un flux d'observables en émissions de notifications. Ces notifications peuvent être des succès, des erreurs ou des complétions. Pour utiliser cet opérateur, vous devez d'abord importer la méthode dematerialize à partir du module RxJS correspondant :

js
import { dematerialize } from 'rxjs';

Ensuite, vous pouvez l'utiliser en appelant la méthode pipe() sur un observable, en lui passant dematerialize en argument :

js
myObservable.pipe(dematerialize());

Cela convertira les émissions de l'observable en émissions de notifications. Notez que cet opérateur ne fonctionne que sur un observable qui émet des notifications, et non pas des valeurs simples.

Voici un exemple complet d'utilisation de dematerialize :

js
import { of, dematerialize } from 'rxjs'

const source = of(
  { kind: 'N', value: 'A' },
  { kind: 'N', value: 'B' },
  { kind: 'E', error: new TypeError('x.toUpperCase is not a function') }
);

const result = source.pipe(dematerialize());

result.subscribe({
  next: x => console.log(x),
  error: e => console.error(e)
});

// Affiche :
// A
// B
// C
// TypeError: x.toUpperCase is not a function 

Ici, nous créons un observable à partir de trois notifications, puis nous utilisons dematerialize pour convertir ces notifications en leurs valeurs respectives. Le résultat est un observable qui émet simplement les valeurs des notifications originales, sans les notifications elles-mêmes.