| 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)); |
| }); |
| } |