mirror of
https://github.com/fooflington/selfdefined.git
synced 2025-06-12 21:51:40 +00:00
30 lines
742 B
TypeScript
30 lines
742 B
TypeScript
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: number = 0;
|
|
|
|
constructor(private parent: OuterSubscriber<T, R>, private outerValue: T, private 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();
|
|
}
|
|
}
|