| 1234567891011121314151617181920212223242526272829303132333435363738394041 | import { Subject } from './Subject';import { Subscription } from './Subscription';export class AsyncSubject extends Subject {    constructor() {        super(...arguments);        this.value = null;        this.hasNext = false;        this.hasCompleted = false;    }    _subscribe(subscriber) {        if (this.hasError) {            subscriber.error(this.thrownError);            return Subscription.EMPTY;        }        else if (this.hasCompleted && this.hasNext) {            subscriber.next(this.value);            subscriber.complete();            return Subscription.EMPTY;        }        return super._subscribe(subscriber);    }    next(value) {        if (!this.hasCompleted) {            this.value = value;            this.hasNext = true;        }    }    error(error) {        if (!this.hasCompleted) {            super.error(error);        }    }    complete() {        this.hasCompleted = true;        if (this.hasNext) {            super.next(this.value);        }        super.complete();    }}//# sourceMappingURL=AsyncSubject.js.map
 |