File size: 1,564 Bytes
bc20498 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
import { OperatorFunction } from '../types';
import { operate } from '../util/lift';
import { createOperatorSubscriber } from './OperatorSubscriber';
import { noop } from '../util/noop';
/**
* Ignores all items emitted by the source Observable and only passes calls of `complete` or `error`.
*
* 
*
* The `ignoreElements` operator suppresses all items emitted by the source Observable,
* but allows its termination notification (either `error` or `complete`) to pass through unchanged.
*
* If you do not care about the items being emitted by an Observable, but you do want to be notified
* when it completes or when it terminates with an error, you can apply the `ignoreElements` operator
* to the Observable, which will ensure that it will never call its observers’ `next` handlers.
*
* ## Example
*
* Ignore all `next` emissions from the source
*
* ```ts
* import { of, ignoreElements } from 'rxjs';
*
* of('you', 'talking', 'to', 'me')
* .pipe(ignoreElements())
* .subscribe({
* next: word => console.log(word),
* error: err => console.log('error:', err),
* complete: () => console.log('the end'),
* });
*
* // result:
* // 'the end'
* ```
*
* @return A function that returns an empty Observable that only calls
* `complete` or `error`, based on which one is called by the source
* Observable.
*/
export function ignoreElements(): OperatorFunction<unknown, never> {
return operate((source, subscriber) => {
source.subscribe(createOperatorSubscriber(subscriber, noop));
});
}
|