diff --git a/spec/Observable-spec.ts b/spec/Observable-spec.ts index 798502f03c..3f92e8a2e9 100644 --- a/spec/Observable-spec.ts +++ b/spec/Observable-spec.ts @@ -1,5 +1,6 @@ import {expect} from 'chai'; import * as Rx from '../dist/cjs/Rx'; +import {TeardownLogic} from '../dist/cjs/Subscription'; declare const {asDiagram, expectObservable}; const Subscriber = Rx.Subscriber; @@ -575,7 +576,7 @@ describe('Observable.lift', () => { super(); } - call(subscriber: Rx.Subscriber, source: any): Rx.Subscription | Function | void { + call(subscriber: Rx.Subscriber, source: any): TeardownLogic { return this.childOperator.call(new LogSubscriber(subscriber), source); } } diff --git a/src/Operator.ts b/src/Operator.ts index d0321fe550..c689cdf1b4 100644 --- a/src/Operator.ts +++ b/src/Operator.ts @@ -1,7 +1,8 @@ import {Subscriber} from './Subscriber'; +import {TeardownLogic} from './Subscription'; export class Operator { - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new Subscriber(subscriber)); } } diff --git a/src/observable/ConnectableObservable.ts b/src/observable/ConnectableObservable.ts index 13b3cced54..312df40986 100644 --- a/src/observable/ConnectableObservable.ts +++ b/src/observable/ConnectableObservable.ts @@ -2,7 +2,7 @@ import {Subject, SubjectSubscriber} from '../Subject'; import {Operator} from '../Operator'; import {Observable} from '../Observable'; import {Subscriber} from '../Subscriber'; -import {Subscription} from '../Subscription'; +import {Subscription, TeardownLogic} from '../Subscription'; /** * @class ConnectableObservable @@ -82,7 +82,7 @@ class ConnectableSubscriber extends SubjectSubscriber { class RefCountOperator implements Operator { constructor(private connectable: ConnectableObservable) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { const { connectable } = this; ( connectable)._refCount++; diff --git a/src/operator/audit.ts b/src/operator/audit.ts index 4b812b7863..c926a79977 100644 --- a/src/operator/audit.ts +++ b/src/operator/audit.ts @@ -1,7 +1,7 @@ import {Operator} from '../Operator'; import {Subscriber} from '../Subscriber'; import {Observable, SubscribableOrPromise} from '../Observable'; -import {Subscription} from '../Subscription'; +import {Subscription, TeardownLogic} from '../Subscription'; import {tryCatch} from '../util/tryCatch'; import {errorObject} from '../util/errorObject'; @@ -60,7 +60,7 @@ class AuditOperator implements Operator { constructor(private durationSelector: (value: T) => SubscribableOrPromise) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new AuditSubscriber(subscriber, this.durationSelector)); } } diff --git a/src/operator/auditTime.ts b/src/operator/auditTime.ts index d9c107a9bf..a0633a2a4f 100644 --- a/src/operator/auditTime.ts +++ b/src/operator/auditTime.ts @@ -3,7 +3,7 @@ import {Operator} from '../Operator'; import {Scheduler} from '../Scheduler'; import {Subscriber} from '../Subscriber'; import {Observable} from '../Observable'; -import {Subscription} from '../Subscription'; +import {Subscription, TeardownLogic} from '../Subscription'; /** * Ignores source values for `duration` milliseconds, then emits the most recent @@ -60,7 +60,7 @@ class AuditTimeOperator implements Operator { private scheduler: Scheduler) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new AuditTimeSubscriber(subscriber, this.duration, this.scheduler)); } } diff --git a/src/operator/debounce.ts b/src/operator/debounce.ts index 4e1afa843a..f8a541c4a0 100644 --- a/src/operator/debounce.ts +++ b/src/operator/debounce.ts @@ -1,7 +1,7 @@ import {Operator} from '../Operator'; import {Observable, SubscribableOrPromise} from '../Observable'; import {Subscriber} from '../Subscriber'; -import {Subscription} from '../Subscription'; +import {Subscription, TeardownLogic} from '../Subscription'; import {OuterSubscriber} from '../OuterSubscriber'; import {InnerSubscriber} from '../InnerSubscriber'; @@ -61,7 +61,7 @@ class DebounceOperator implements Operator { constructor(private durationSelector: (value: T) => SubscribableOrPromise) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new DebounceSubscriber(subscriber, this.durationSelector)); } } diff --git a/src/operator/debounceTime.ts b/src/operator/debounceTime.ts index f989ea760d..876ed4d32b 100644 --- a/src/operator/debounceTime.ts +++ b/src/operator/debounceTime.ts @@ -2,7 +2,7 @@ import {Operator} from '../Operator'; import {Observable} from '../Observable'; import {Subscriber} from '../Subscriber'; import {Scheduler} from '../Scheduler'; -import {Subscription} from '../Subscription'; +import {Subscription, TeardownLogic} from '../Subscription'; import {async} from '../scheduler/async'; /** @@ -63,7 +63,7 @@ class DebounceTimeOperator implements Operator { constructor(private dueTime: number, private scheduler: Scheduler) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler)); } } diff --git a/src/operator/delay.ts b/src/operator/delay.ts index 1a9edb0607..f6ef6669aa 100644 --- a/src/operator/delay.ts +++ b/src/operator/delay.ts @@ -5,6 +5,7 @@ import {Scheduler} from '../Scheduler'; import {Subscriber} from '../Subscriber'; import {Notification} from '../Notification'; import {Observable} from '../Observable'; +import {TeardownLogic} from '../Subscription'; /** * Delays the emission of items from the source Observable by a given timeout or @@ -61,7 +62,7 @@ class DelayOperator implements Operator { private scheduler: Scheduler) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler)); } } diff --git a/src/operator/delayWhen.ts b/src/operator/delayWhen.ts index e843d5cb0b..44a098d16f 100644 --- a/src/operator/delayWhen.ts +++ b/src/operator/delayWhen.ts @@ -1,7 +1,7 @@ import {Operator} from '../Operator'; import {Subscriber} from '../Subscriber'; import {Observable} from '../Observable'; -import {Subscription} from '../Subscription'; +import {Subscription, TeardownLogic} from '../Subscription'; import {OuterSubscriber} from '../OuterSubscriber'; import {InnerSubscriber} from '../InnerSubscriber'; @@ -69,7 +69,7 @@ class DelayWhenOperator implements Operator { constructor(private delayDurationSelector: (value: T) => Observable) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector)); } } diff --git a/src/operator/distinct.ts b/src/operator/distinct.ts index 32c725fe76..1d3e47440b 100644 --- a/src/operator/distinct.ts +++ b/src/operator/distinct.ts @@ -1,7 +1,7 @@ import {Observable} from '../Observable'; import {Operator} from '../Operator'; import {Subscriber} from '../Subscriber'; - +import {TeardownLogic} from '../Subscription'; import {OuterSubscriber} from '../OuterSubscriber'; import {InnerSubscriber} from '../InnerSubscriber'; import {subscribeToResult} from '../util/subscribeToResult'; @@ -30,7 +30,7 @@ class DistinctOperator implements Operator { constructor(private compare: (x: T, y: T) => boolean, private flushes: Observable) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new DistinctSubscriber(subscriber, this.compare, this.flushes)); } } diff --git a/src/operator/distinctUntilChanged.ts b/src/operator/distinctUntilChanged.ts index 441e0fe331..e5e22948bc 100644 --- a/src/operator/distinctUntilChanged.ts +++ b/src/operator/distinctUntilChanged.ts @@ -3,6 +3,7 @@ import {Subscriber} from '../Subscriber'; import {tryCatch} from '../util/tryCatch'; import {errorObject} from '../util/errorObject'; import {Observable} from '../Observable'; +import {TeardownLogic} from '../Subscription'; /** * Returns an Observable that emits all items emitted by the source Observable that are distinct by comparison from the previous item. @@ -27,7 +28,7 @@ class DistinctUntilChangedOperator implements Operator { private keySelector: (x: T) => K) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector)); } } diff --git a/src/operator/do.ts b/src/operator/do.ts index 165e0eb373..cacb114a93 100644 --- a/src/operator/do.ts +++ b/src/operator/do.ts @@ -2,6 +2,7 @@ import {Operator} from '../Operator'; import {Subscriber} from '../Subscriber'; import {Observable} from '../Observable'; import {PartialObserver} from '../Observer'; +import {TeardownLogic} from '../Subscription'; /** * Perform a side effect for every emission on the source Observable, but return @@ -62,7 +63,7 @@ class DoOperator implements Operator { private error?: (e: any) => void, private complete?: () => void) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new DoSubscriber(subscriber, this.nextOrObserver, this.error, this.complete)); } } diff --git a/src/operator/elementAt.ts b/src/operator/elementAt.ts index 069335a81d..e383650643 100644 --- a/src/operator/elementAt.ts +++ b/src/operator/elementAt.ts @@ -2,6 +2,7 @@ import {Operator} from '../Operator'; import {Subscriber} from '../Subscriber'; import {ArgumentOutOfRangeError} from '../util/ArgumentOutOfRangeError'; import {Observable} from '../Observable'; +import {TeardownLogic} from '../Subscription'; /** * Emits the single value at the specified `index` in a sequence of emissions @@ -56,7 +57,7 @@ class ElementAtOperator implements Operator { } } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new ElementAtSubscriber(subscriber, this.index, this.defaultValue)); } } diff --git a/src/operator/exhaust.ts b/src/operator/exhaust.ts index ab645c3ed1..ff3dcbc845 100644 --- a/src/operator/exhaust.ts +++ b/src/operator/exhaust.ts @@ -1,7 +1,7 @@ import {Operator} from '../Operator'; import {Observable} from '../Observable'; import {Subscriber} from '../Subscriber'; -import {Subscription} from '../Subscription'; +import {Subscription, TeardownLogic} from '../Subscription'; import {OuterSubscriber} from '../OuterSubscriber'; import {subscribeToResult} from '../util/subscribeToResult'; @@ -50,7 +50,7 @@ export interface SwitchFirstSignature { } class SwitchFirstOperator implements Operator { - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new SwitchFirstSubscriber(subscriber)); } } diff --git a/src/operator/filter.ts b/src/operator/filter.ts index 2c3f9ce382..42b6a9cc29 100644 --- a/src/operator/filter.ts +++ b/src/operator/filter.ts @@ -1,6 +1,7 @@ import {Operator} from '../Operator'; import {Subscriber} from '../Subscriber'; import {Observable} from '../Observable'; +import {TeardownLogic} from '../Subscription'; /** * Filter items emitted by the source Observable by only emitting those that @@ -56,7 +57,7 @@ class FilterOperator implements Operator { private thisArg?: any) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg)); } } diff --git a/src/operator/finally.ts b/src/operator/finally.ts index 9b59243342..36f4033102 100644 --- a/src/operator/finally.ts +++ b/src/operator/finally.ts @@ -1,6 +1,6 @@ import {Operator} from '../Operator'; import {Subscriber} from '../Subscriber'; -import {Subscription} from '../Subscription'; +import {Subscription, TeardownLogic} from '../Subscription'; import {Observable} from '../Observable'; /** @@ -23,7 +23,7 @@ class FinallyOperator implements Operator { constructor(private callback: () => void) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new FinallySubscriber(subscriber, this.callback)); } } diff --git a/src/operator/observeOn.ts b/src/operator/observeOn.ts index 21ba3404bb..93f87629e1 100644 --- a/src/operator/observeOn.ts +++ b/src/operator/observeOn.ts @@ -4,6 +4,7 @@ import {Operator} from '../Operator'; import {PartialObserver} from '../Observer'; import {Subscriber} from '../Subscriber'; import {Notification} from '../Notification'; +import {TeardownLogic} from '../Subscription'; /** * @see {@link Notification} @@ -26,7 +27,7 @@ export class ObserveOnOperator implements Operator { constructor(private scheduler: Scheduler, private delay: number = 0) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay)); } } diff --git a/src/operator/race.ts b/src/operator/race.ts index 5a9b38bcb8..80d744a4e4 100644 --- a/src/operator/race.ts +++ b/src/operator/race.ts @@ -3,7 +3,7 @@ import {isArray} from '../util/isArray'; import {ArrayObservable} from '../observable/ArrayObservable'; import {Operator} from '../Operator'; import {Subscriber} from '../Subscriber'; -import {Subscription} from '../Subscription'; +import {Subscription, TeardownLogic} from '../Subscription'; import {OuterSubscriber} from '../OuterSubscriber'; import {InnerSubscriber} from '../InnerSubscriber'; import {subscribeToResult} from '../util/subscribeToResult'; @@ -56,7 +56,7 @@ export function raceStatic(...observables: Array | Array implements Operator { - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new RaceSubscriber(subscriber)); } } diff --git a/src/operator/repeat.ts b/src/operator/repeat.ts index 5bff52581e..fb243cd7ea 100644 --- a/src/operator/repeat.ts +++ b/src/operator/repeat.ts @@ -2,6 +2,7 @@ import {Operator} from '../Operator'; import {Subscriber} from '../Subscriber'; import {Observable} from '../Observable'; import {EmptyObservable} from '../observable/EmptyObservable'; +import {TeardownLogic} from '../Subscription'; /** * Returns an Observable that repeats the stream of items emitted by the source Observable at most count times, @@ -35,7 +36,7 @@ class RepeatOperator implements Operator { constructor(private count: number, private source: Observable) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new RepeatSubscriber(subscriber, this.count, this.source)); } } diff --git a/src/operator/retry.ts b/src/operator/retry.ts index 384c40d717..d55cc4de17 100644 --- a/src/operator/retry.ts +++ b/src/operator/retry.ts @@ -1,6 +1,7 @@ import {Operator} from '../Operator'; import {Subscriber} from '../Subscriber'; import {Observable} from '../Observable'; +import {TeardownLogic} from '../Subscription'; /** * Returns an Observable that mirrors the source Observable, resubscribing to it if it calls `error` and the @@ -32,7 +33,7 @@ class RetryOperator implements Operator { private source: Observable) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new RetrySubscriber(subscriber, this.count, this.source)); } } diff --git a/src/operator/retryWhen.ts b/src/operator/retryWhen.ts index 1d1acdba5d..bc36518a57 100644 --- a/src/operator/retryWhen.ts +++ b/src/operator/retryWhen.ts @@ -2,7 +2,7 @@ import {Operator} from '../Operator'; import {Subscriber} from '../Subscriber'; import {Observable} from '../Observable'; import {Subject} from '../Subject'; -import {Subscription} from '../Subscription'; +import {Subscription, TeardownLogic} from '../Subscription'; import {tryCatch} from '../util/tryCatch'; import {errorObject} from '../util/errorObject'; @@ -39,7 +39,7 @@ class RetryWhenOperator implements Operator { protected source: Observable) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source)); } } diff --git a/src/operator/sample.ts b/src/operator/sample.ts index d02d3aa757..92668998c6 100644 --- a/src/operator/sample.ts +++ b/src/operator/sample.ts @@ -1,7 +1,7 @@ import {Operator} from '../Operator'; import {Observable} from '../Observable'; import {Subscriber} from '../Subscriber'; - +import {TeardownLogic} from '../Subscription'; import {OuterSubscriber} from '../OuterSubscriber'; import {InnerSubscriber} from '../InnerSubscriber'; import {subscribeToResult} from '../util/subscribeToResult'; @@ -52,7 +52,7 @@ class SampleOperator implements Operator { constructor(private notifier: Observable) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new SampleSubscriber(subscriber, this.notifier)); } } diff --git a/src/operator/sampleTime.ts b/src/operator/sampleTime.ts index 978a66db8b..f962c217a2 100644 --- a/src/operator/sampleTime.ts +++ b/src/operator/sampleTime.ts @@ -3,6 +3,7 @@ import {Operator} from '../Operator'; import {Subscriber} from '../Subscriber'; import {Scheduler} from '../Scheduler'; import {async} from '../scheduler/async'; +import {TeardownLogic} from '../Subscription'; /** * Emits the most recently emitted value from the source Observable within @@ -53,7 +54,7 @@ class SampleTimeOperator implements Operator { private scheduler: Scheduler) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler)); } } diff --git a/src/operator/single.ts b/src/operator/single.ts index 606495f122..8f16a22651 100644 --- a/src/operator/single.ts +++ b/src/operator/single.ts @@ -3,6 +3,7 @@ import {Operator} from '../Operator'; import {Subscriber} from '../Subscriber'; import {Observer} from '../Observer'; import {EmptyError} from '../util/EmptyError'; +import {TeardownLogic} from '../Subscription'; /** * Returns an Observable that emits the single item emitted by the source Observable that matches a specified @@ -33,7 +34,7 @@ class SingleOperator implements Operator { private source?: Observable) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new SingleSubscriber(subscriber, this.predicate, this.source)); } } diff --git a/src/operator/skip.ts b/src/operator/skip.ts index af61ed2081..fbcbb61f8c 100644 --- a/src/operator/skip.ts +++ b/src/operator/skip.ts @@ -1,6 +1,7 @@ import {Operator} from '../Operator'; import {Subscriber} from '../Subscriber'; import {Observable} from '../Observable'; +import {TeardownLogic} from '../Subscription'; /** * Returns an Observable that skips `n` items emitted by an Observable. @@ -25,7 +26,7 @@ class SkipOperator implements Operator { constructor(private total: number) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new SkipSubscriber(subscriber, this.total)); } } diff --git a/src/operator/skipUntil.ts b/src/operator/skipUntil.ts index 7d39e97fa2..c6105a72d9 100644 --- a/src/operator/skipUntil.ts +++ b/src/operator/skipUntil.ts @@ -1,7 +1,7 @@ import {Operator} from '../Operator'; import {Subscriber} from '../Subscriber'; import {Observable} from '../Observable'; - +import {TeardownLogic} from '../Subscription'; import {OuterSubscriber} from '../OuterSubscriber'; import {InnerSubscriber} from '../InnerSubscriber'; import {subscribeToResult} from '../util/subscribeToResult'; @@ -30,7 +30,7 @@ class SkipUntilOperator implements Operator { constructor(private notifier: Observable) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new SkipUntilSubscriber(subscriber, this.notifier)); } } diff --git a/src/operator/skipWhile.ts b/src/operator/skipWhile.ts index 7fcdb06c29..b52e941d40 100644 --- a/src/operator/skipWhile.ts +++ b/src/operator/skipWhile.ts @@ -1,6 +1,7 @@ import {Observable} from '../Observable'; import {Operator} from '../Operator'; import {Subscriber} from '../Subscriber'; +import {TeardownLogic} from '../Subscription'; /** * Returns an Observable that skips all items emitted by the source Observable as long as a specified condition holds @@ -26,7 +27,7 @@ class SkipWhileOperator implements Operator { constructor(private predicate: (value: T, index: number) => boolean) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new SkipWhileSubscriber(subscriber, this.predicate)); } } diff --git a/src/operator/take.ts b/src/operator/take.ts index 4f312a72bb..fbf201934f 100644 --- a/src/operator/take.ts +++ b/src/operator/take.ts @@ -3,6 +3,7 @@ import {Subscriber} from '../Subscriber'; import {ArgumentOutOfRangeError} from '../util/ArgumentOutOfRangeError'; import {EmptyObservable} from '../observable/EmptyObservable'; import {Observable} from '../Observable'; +import {TeardownLogic} from '../Subscription'; /** * Emits only the first `count` values emitted by the source Observable. @@ -56,7 +57,7 @@ class TakeOperator implements Operator { } } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new TakeSubscriber(subscriber, this.total)); } } diff --git a/src/operator/takeLast.ts b/src/operator/takeLast.ts index e8ebaa3c28..e48f3edfc6 100644 --- a/src/operator/takeLast.ts +++ b/src/operator/takeLast.ts @@ -3,6 +3,7 @@ import {Subscriber} from '../Subscriber'; import {ArgumentOutOfRangeError} from '../util/ArgumentOutOfRangeError'; import {EmptyObservable} from '../observable/EmptyObservable'; import {Observable} from '../Observable'; +import {TeardownLogic} from '../Subscription'; /** * Emits only the last `count` values emitted by the source Observable. @@ -59,7 +60,7 @@ class TakeLastOperator implements Operator { } } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new TakeLastSubscriber(subscriber, this.total)); } } diff --git a/src/operator/takeUntil.ts b/src/operator/takeUntil.ts index c62252a254..2cd26d9abf 100644 --- a/src/operator/takeUntil.ts +++ b/src/operator/takeUntil.ts @@ -1,6 +1,7 @@ import {Operator} from '../Operator'; import {Observable} from '../Observable'; import {Subscriber} from '../Subscriber'; +import {TeardownLogic} from '../Subscription'; import {OuterSubscriber} from '../OuterSubscriber'; import {InnerSubscriber} from '../InnerSubscriber'; @@ -51,7 +52,7 @@ class TakeUntilOperator implements Operator { constructor(private notifier: Observable) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new TakeUntilSubscriber(subscriber, this.notifier)); } } diff --git a/src/operator/takeWhile.ts b/src/operator/takeWhile.ts index 6b8008be6e..1f6d51b45a 100644 --- a/src/operator/takeWhile.ts +++ b/src/operator/takeWhile.ts @@ -1,6 +1,7 @@ import {Operator} from '../Operator'; import {Observable} from '../Observable'; import {Subscriber} from '../Subscriber'; +import {TeardownLogic} from '../Subscription'; /** * Emits values emitted by the source Observable so long as each value satisfies @@ -50,7 +51,7 @@ class TakeWhileOperator implements Operator { constructor(private predicate: (value: T, index: number) => boolean) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new TakeWhileSubscriber(subscriber, this.predicate)); } } diff --git a/src/operator/throttle.ts b/src/operator/throttle.ts index 63806472c9..3528229555 100644 --- a/src/operator/throttle.ts +++ b/src/operator/throttle.ts @@ -1,7 +1,7 @@ import {Operator} from '../Operator'; import {Observable, SubscribableOrPromise} from '../Observable'; import {Subscriber} from '../Subscriber'; -import {Subscription} from '../Subscription'; +import {Subscription, TeardownLogic} from '../Subscription'; import {OuterSubscriber} from '../OuterSubscriber'; import {InnerSubscriber} from '../InnerSubscriber'; @@ -57,7 +57,7 @@ class ThrottleOperator implements Operator { constructor(private durationSelector: (value: T) => SubscribableOrPromise) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new ThrottleSubscriber(subscriber, this.durationSelector)); } } diff --git a/src/operator/throttleTime.ts b/src/operator/throttleTime.ts index 051b39aaea..7b8c561002 100644 --- a/src/operator/throttleTime.ts +++ b/src/operator/throttleTime.ts @@ -1,7 +1,7 @@ import {Operator} from '../Operator'; import {Subscriber} from '../Subscriber'; import {Scheduler} from '../Scheduler'; -import {Subscription} from '../Subscription'; +import {Subscription, TeardownLogic} from '../Subscription'; import {async} from '../scheduler/async'; import {Observable} from '../Observable'; @@ -57,7 +57,7 @@ class ThrottleTimeOperator implements Operator { private scheduler: Scheduler) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler)); } } diff --git a/src/operator/timeout.ts b/src/operator/timeout.ts index 56c303fa9a..1a62904a8c 100644 --- a/src/operator/timeout.ts +++ b/src/operator/timeout.ts @@ -4,6 +4,7 @@ import {Operator} from '../Operator'; import {Subscriber} from '../Subscriber'; import {Scheduler} from '../Scheduler'; import {Observable} from '../Observable'; +import {TeardownLogic} from '../Subscription'; /** * @param due @@ -32,7 +33,7 @@ class TimeoutOperator implements Operator { private scheduler: Scheduler) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new TimeoutSubscriber( subscriber, this.absoluteTimeout, this.waitFor, this.errorToSend, this.scheduler )); diff --git a/src/operator/timeoutWith.ts b/src/operator/timeoutWith.ts index 39efbb5905..2a524e344d 100644 --- a/src/operator/timeoutWith.ts +++ b/src/operator/timeoutWith.ts @@ -2,7 +2,7 @@ import {Operator} from '../Operator'; import {Subscriber} from '../Subscriber'; import {Scheduler} from '../Scheduler'; import {async} from '../scheduler/async'; -import {Subscription} from '../Subscription'; +import {Subscription, TeardownLogic} from '../Subscription'; import {Observable} from '../Observable'; import {isDate} from '../util/isDate'; import {OuterSubscriber} from '../OuterSubscriber'; @@ -36,7 +36,7 @@ class TimeoutWithOperator implements Operator { private scheduler: Scheduler) { } - call(subscriber: Subscriber, source: any): any { + call(subscriber: Subscriber, source: any): TeardownLogic { return source._subscribe(new TimeoutWithSubscriber( subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler ));