import { Subject } from './Subject'; export class AsyncSubject extends Subject { constructor() { super(...arguments); this._value = null; this._hasValue = false; this._isComplete = false; } _checkFinalizedStatuses(subscriber) { const { hasError, _hasValue, _value, thrownError, isStopped, _isComplete } = this; if (hasError) { subscriber.error(thrownError); } else if (isStopped || _isComplete) { _hasValue && subscriber.next(_value); subscriber.complete(); } } next(value) { if (!this.isStopped) { this._value = value; this._hasValue = true; } } complete() { const { _hasValue, _value, _isComplete } = this; if (!_isComplete) { this._isComplete = true; _hasValue && super.next(_value); super.complete(); } } } //# sourceMappingURL=AsyncSubject.js.map