| import { from } from '../observable/from'; |
| import { isArray } from '../util/isArray'; |
| import { OuterSubscriber } from '../OuterSubscriber'; |
| import { InnerSubscriber } from '../InnerSubscriber'; |
| import { subscribeToResult } from '../util/subscribeToResult'; |
| export function onErrorResumeNext(...nextSources) { |
| if (nextSources.length === 1 && isArray(nextSources[0])) { |
| nextSources = nextSources[0]; |
| } |
| return (source) => source.lift(new OnErrorResumeNextOperator(nextSources)); |
| } |
| export function onErrorResumeNextStatic(...nextSources) { |
| let source = null; |
| if (nextSources.length === 1 && isArray(nextSources[0])) { |
| nextSources = nextSources[0]; |
| } |
| source = nextSources.shift(); |
| return from(source, null).lift(new OnErrorResumeNextOperator(nextSources)); |
| } |
| class OnErrorResumeNextOperator { |
| constructor(nextSources) { |
| this.nextSources = nextSources; |
| } |
| call(subscriber, source) { |
| return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources)); |
| } |
| } |
| class OnErrorResumeNextSubscriber extends OuterSubscriber { |
| constructor(destination, nextSources) { |
| super(destination); |
| this.destination = destination; |
| this.nextSources = nextSources; |
| } |
| notifyError(error, innerSub) { |
| this.subscribeToNextSource(); |
| } |
| notifyComplete(innerSub) { |
| this.subscribeToNextSource(); |
| } |
| _error(err) { |
| this.subscribeToNextSource(); |
| this.unsubscribe(); |
| } |
| _complete() { |
| this.subscribeToNextSource(); |
| this.unsubscribe(); |
| } |
| subscribeToNextSource() { |
| const next = this.nextSources.shift(); |
| if (!!next) { |
| const innerSubscriber = new InnerSubscriber(this, undefined, undefined); |
| const destination = this.destination; |
| destination.add(innerSubscriber); |
| subscribeToResult(this, next, undefined, undefined, innerSubscriber); |
| } |
| else { |
| this.destination.complete(); |
| } |
| } |
| } |
| //# sourceMappingURL=onErrorResumeNext.js.map |