UNPKG

@reactivex/rxjs

Version:

Reactive Extensions for modern JavaScript

46 lines 1.77 kB
var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; define(["require", "exports", './Subject', './Subscription'], function (require, exports, Subject_1, Subscription_1) { "use strict"; /** * @class AsyncSubject<T> */ var AsyncSubject = (function (_super) { __extends(AsyncSubject, _super); function AsyncSubject() { _super.apply(this, arguments); this.value = null; this.hasNext = false; this.hasCompleted = false; } AsyncSubject.prototype._subscribe = function (subscriber) { if (this.hasCompleted && this.hasNext) { subscriber.next(this.value); subscriber.complete(); return Subscription_1.Subscription.EMPTY; } else if (this.hasError) { subscriber.error(this.thrownError); return Subscription_1.Subscription.EMPTY; } return _super.prototype._subscribe.call(this, subscriber); }; AsyncSubject.prototype.next = function (value) { this.value = value; this.hasNext = true; }; AsyncSubject.prototype.complete = function () { this.hasCompleted = true; if (this.hasNext) { _super.prototype.next.call(this, this.value); } _super.prototype.complete.call(this); }; return AsyncSubject; }(Subject_1.Subject)); exports.AsyncSubject = AsyncSubject; }); //# sourceMappingURL=AsyncSubject.js.map