12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- 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
|