function
stable
Represents all of the notifications from the source Observable as next
emissions marked with their original types within Notification
objects.
materialize<T>(): OperatorFunction<T, Notification<T>>
There are no parameters.
OperatorFunction<T, Notification<T>>
: An Observable that emits Notification
objects that wrap the original emissions from the source Observable with metadata.
Wraps next
, error
and complete
emissions in Notification
objects, emitted as next
on the output Observable.
materialize
returns an Observable that emits a next
notification for each next
, error
, or complete
emission of the source Observable. When the source Observable emits complete
, the output Observable will emit next
as a Notification of type "complete", and then it will emit complete
as well. When the source Observable emits error
, the output will emit next
as a Notification of type "error", and then complete
.
This operator is useful for producing metadata of the source Observable, to be consumed as next
emissions. Use it in conjunction with dematerialize
.
Convert a faulty Observable to an Observable of Notifications
import { of } from 'rxjs'; import { materialize, map } from 'rxjs/operators'; const letters = of('a', 'b', 13, 'd'); const upperCase = letters.pipe(map(x => x.toUpperCase())); const materialized = upperCase.pipe(materialize()); materialized.subscribe(x => console.log(x)); // Results in the following: // - Notification {kind: "N", value: "A", error: undefined, hasValue: true} // - Notification {kind: "N", value: "B", error: undefined, hasValue: true} // - Notification {kind: "E", value: undefined, error: TypeError: // x.toUpperCase is not a function at MapSubscriber.letters.map.x // [as project] (http://1…, hasValue: false}
© 2015–2018 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/materialize