InnerSubscriber.ts
732 Bytes
import { Subscriber } from './Subscriber';
import { OuterSubscriber } from './OuterSubscriber';
/**
* We need this JSDoc comment for affecting ESDoc.
* @ignore
* @extends {Ignored}
*/
export class InnerSubscriber<T, R> extends Subscriber<R> {
private index = 0;
constructor(private parent: OuterSubscriber<T, R>, public outerValue: T, public outerIndex: number) {
super();
}
protected _next(value: R): void {
this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);
}
protected _error(error: any): void {
this.parent.notifyError(error, this);
this.unsubscribe();
}
protected _complete(): void {
this.parent.notifyComplete(this);
this.unsubscribe();
}
}