12345678910111213141516171819202122232425262728293031323334 |
- 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
|