diff --git a/src/operator/ignoreElements.ts b/src/operator/ignoreElements.ts index 23727ead2e..2cdf11bece 100644 --- a/src/operator/ignoreElements.ts +++ b/src/operator/ignoreElements.ts @@ -1,7 +1,5 @@ import { Observable } from '../Observable'; -import { Operator } from '../Operator'; -import { Subscriber } from '../Subscriber'; -import { noop } from '../util/noop'; +import { ignoreElements as higherOrder } from '../operators'; /** * Ignores all items emitted by the source Observable and only passes calls of `complete` or `error`. @@ -14,22 +12,5 @@ import { noop } from '../util/noop'; * @owner Observable */ export function ignoreElements(this: Observable): Observable { - return this.lift(new IgnoreElementsOperator()); + return higherOrder()(this); }; - -class IgnoreElementsOperator implements Operator { - call(subscriber: Subscriber, source: any): any { - return source.subscribe(new IgnoreElementsSubscriber(subscriber)); - } -} - -/** - * We need this JSDoc comment for affecting ESDoc. - * @ignore - * @extends {Ignored} - */ -class IgnoreElementsSubscriber extends Subscriber { - protected _next(unused: T): void { - noop(); - } -} diff --git a/src/operators/ignoreElements.ts b/src/operators/ignoreElements.ts new file mode 100644 index 0000000000..b0f1402f23 --- /dev/null +++ b/src/operators/ignoreElements.ts @@ -0,0 +1,38 @@ +import { Observable } from '../Observable'; +import { Operator } from '../Operator'; +import { Subscriber } from '../Subscriber'; +import { noop } from '../util/noop'; +import { MonoTypeOperatorFunction } from '../interfaces'; + +/** + * Ignores all items emitted by the source Observable and only passes calls of `complete` or `error`. + * + * + * + * @return {Observable} An empty Observable that only calls `complete` + * or `error`, based on which one is called by the source Observable. + * @method ignoreElements + * @owner Observable + */ +export function ignoreElements(): MonoTypeOperatorFunction { + return function ignoreElementsOperatorFunction(source: Observable) { + return source.lift(new IgnoreElementsOperator()); + }; +} + +class IgnoreElementsOperator implements Operator { + call(subscriber: Subscriber, source: any): any { + return source.subscribe(new IgnoreElementsSubscriber(subscriber)); + } +} + +/** + * We need this JSDoc comment for affecting ESDoc. + * @ignore + * @extends {Ignored} + */ +class IgnoreElementsSubscriber extends Subscriber { + protected _next(unused: T): void { + noop(); + } +} diff --git a/src/operators/index.ts b/src/operators/index.ts index f99b877438..412226844a 100644 --- a/src/operators/index.ts +++ b/src/operators/index.ts @@ -2,6 +2,7 @@ export { catchError } from './catchError'; export { concatMap } from './concatMap'; export { defaultIfEmpty } from './defaultIfEmpty'; export { filter } from './filter'; +export { ignoreElements } from './ignoreElements'; export { map } from './map'; export { max } from './max'; export { mergeMap } from './mergeMap';