dematerialize
function
stable
Converts an Observable of ObservableNotification
objects into the emissions that they represent.
dematerialize<N extends ObservableNotification<any>>(): OperatorFunction<N, ValueFromNotification<N>>
Parameters
There are no parameters.
Returns
OperatorFunction<N, ValueFromNotification<N>>
: A function that returns an Observable that emits items and notifications embedded in Notification objects emitted by the source Observable.
Description
Unwraps ObservableNotification
objects as actual next
, error
and complete
emissions. The opposite of materialize
.
dematerialize
is assumed to operate an Observable that only emits ObservableNotification
objects as next
emissions, and does not emit any error
. Such Observable is the output of a materialize
operation. Those notifications are then unwrapped using the metadata they contain, and emitted as next
, error
, and complete
on the output Observable.
Use this operator in conjunction with materialize
.
Example
Convert an Observable of Notifications to an actual Observable
import { of } from 'rxjs'; import { dematerialize } from 'rxjs/operators'; const notifA = { kind: 'N', value: 'A' }; const notifB = { kind: 'N', value: 'B' }; const notifE = { kind: 'E', error: new TypeError('x.toUpperCase is not a function') } const materialized = of(notifA, notifB, notifE); const upperCase = materialized.pipe(dematerialize()); upperCase.subscribe({ next: x => console.log(x), error: e => console.error(e) }); // Results in: // A // B // TypeError: x.toUpperCase is not a function
See Also
© 2015–2021 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors.
Code licensed under an Apache-2.0 License. Documentation licensed under CC BY 4.0.
https://rxjs.dev/api/operators/dematerialize