mirror of
				https://github.com/fooflington/selfdefined.git
				synced 2025-10-31 06:08:33 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			48 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { Observable } from '../Observable';
 | |
| import { Notification } from '../Notification';
 | |
| /**
 | |
|  * Represents all of the notifications from the source Observable as `next`
 | |
|  * emissions marked with their original types within {@link Notification}
 | |
|  * objects.
 | |
|  *
 | |
|  * <span class="informal">Wraps `next`, `error` and `complete` emissions in
 | |
|  * {@link Notification} objects, emitted as `next` on the output Observable.
 | |
|  * </span>
 | |
|  *
 | |
|  * <img src="./img/materialize.png" width="100%">
 | |
|  *
 | |
|  * `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
 | |
|  * {@link dematerialize}.
 | |
|  *
 | |
|  * @example <caption>Convert a faulty Observable to an Observable of Notifications</caption>
 | |
|  * var letters = Rx.Observable.of('a', 'b', 13, 'd');
 | |
|  * var upperCase = letters.map(x => x.toUpperCase());
 | |
|  * var materialized = upperCase.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}
 | |
|  *
 | |
|  * @see {@link Notification}
 | |
|  * @see {@link dematerialize}
 | |
|  *
 | |
|  * @return {Observable<Notification<T>>} An Observable that emits
 | |
|  * {@link Notification} objects that wrap the original emissions from the source
 | |
|  * Observable with metadata.
 | |
|  * @method materialize
 | |
|  * @owner Observable
 | |
|  */
 | |
| export declare function materialize<T>(this: Observable<T>): Observable<Notification<T>>;
 | 
