UNPKG

tsbase

Version:

Base class libraries for TypeScript

66 lines 2.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Observable = void 0; var tslib_1 = require("tslib"); var Guid_1 = require("../../System/Guid"); var Command_1 = require("../CommandQuery/Command"); var BaseObservable_1 = require("./BaseObservable"); var Observable = /** @class */ (function (_super) { tslib_1.__extends(Observable, _super); function Observable() { return _super !== null && _super.apply(this, arguments) || this; } Observable.prototype.Subscribe = function (func, useCurrentIssue) { if (useCurrentIssue === void 0) { useCurrentIssue = true; } var subscriptionId = Guid_1.Guid.NewGuid(); this.subscribers.set(subscriptionId, func); if (useCurrentIssue && this.CurrentIssue) { func(this.CurrentIssue); } return subscriptionId; }; Observable.prototype.Order = function (func, useCurrentIssue) { var _this = this; if (useCurrentIssue === void 0) { useCurrentIssue = true; } var subscriptionId = Guid_1.Guid.NewGuid(); var orderFunction = function (content) { func(content); _this.Cancel(subscriptionId); }; this.subscribers.set(subscriptionId, orderFunction); if (useCurrentIssue && this.CurrentIssue) { orderFunction(this.CurrentIssue); } }; Observable.prototype.Publish = function (content) { var e_1, _a; if (this.active) { this.CurrentIssue = content; var _loop_1 = function (element) { var key = element[0]; var func = element[1]; var result = new Command_1.Command(function () { return func(content); }).Execute(); if (!result.IsSuccess) { this_1.Cancel(key); } }; var this_1 = this; try { for (var _b = tslib_1.__values(this.subscribers), _c = _b.next(); !_c.done; _c = _b.next()) { var element = _c.value; _loop_1(element); } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (_c && !_c.done && (_a = _b.return)) _a.call(_b); } finally { if (e_1) throw e_1.error; } } } }; return Observable; }(BaseObservable_1.BaseObservable)); exports.Observable = Observable; //# sourceMappingURL=Observable.js.map