import { Subject } from '../Subject';
-import { OuterSubscriber } from '../OuterSubscriber';
-import { subscribeToResult } from '../util/subscribeToResult';
+import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';
export function retryWhen(notifier) {
return (source) => source.lift(new RetryWhenOperator(notifier, source));
}
return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source));
}
}
-class RetryWhenSubscriber extends OuterSubscriber {
+class RetryWhenSubscriber extends SimpleOuterSubscriber {
constructor(destination, notifier, source) {
super(destination);
this.notifier = notifier;
catch (e) {
return super.error(e);
}
- retriesSubscription = subscribeToResult(this, retries);
+ retriesSubscription = innerSubscribe(retries, new SimpleInnerSubscriber(this));
}
else {
- this.errors = null;
- this.retriesSubscription = null;
+ this.errors = undefined;
+ this.retriesSubscription = undefined;
}
this._unsubscribeAndRecycle();
this.errors = errors;
const { errors, retriesSubscription } = this;
if (errors) {
errors.unsubscribe();
- this.errors = null;
+ this.errors = undefined;
}
if (retriesSubscription) {
retriesSubscription.unsubscribe();
- this.retriesSubscription = null;
+ this.retriesSubscription = undefined;
}
- this.retries = null;
+ this.retries = undefined;
}
- notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
+ notifyNext() {
const { _unsubscribe } = this;
this._unsubscribe = null;
this._unsubscribeAndRecycle();