| import { __extends } from "tslib"; |
| import { Subject } from './Subject'; |
| var AsyncSubject = (function (_super) { |
| __extends(AsyncSubject, _super); |
| function AsyncSubject() { |
| var _this = _super !== null && _super.apply(this, arguments) || this; |
| _this._value = null; |
| _this._hasValue = false; |
| _this._isComplete = false; |
| return _this; |
| } |
| AsyncSubject.prototype._checkFinalizedStatuses = function (subscriber) { |
| var _a = this, hasError = _a.hasError, _hasValue = _a._hasValue, _value = _a._value, thrownError = _a.thrownError, isStopped = _a.isStopped, _isComplete = _a._isComplete; |
| if (hasError) { |
| subscriber.error(thrownError); |
| } |
| else if (isStopped || _isComplete) { |
| _hasValue && subscriber.next(_value); |
| subscriber.complete(); |
| } |
| }; |
| AsyncSubject.prototype.next = function (value) { |
| if (!this.isStopped) { |
| this._value = value; |
| this._hasValue = true; |
| } |
| }; |
| AsyncSubject.prototype.complete = function () { |
| var _a = this, _hasValue = _a._hasValue, _value = _a._value, _isComplete = _a._isComplete; |
| if (!_isComplete) { |
| this._isComplete = true; |
| _hasValue && _super.prototype.next.call(this, _value); |
| _super.prototype.complete.call(this); |
| } |
| }; |
| return AsyncSubject; |
| }(Subject)); |
| export { AsyncSubject }; |
| //# sourceMappingURL=AsyncSubject.js.map |