UNPKG

2.23 kBJavaScriptView Raw
1(function (factory) {
2 if (typeof module === "object" && typeof module.exports === "object") {
3 var v = factory(require, exports);
4 if (v !== undefined) module.exports = v;
5 }
6 else if (typeof define === "function" && define.amd) {
7 define(["require", "exports"], factory);
8 }
9})(function (require, exports) {
10 "use strict";
11 Object.defineProperty(exports, "__esModule", { value: true });
12 var Deferred = (function () {
13 function Deferred() {
14 var _this = this;
15 this.promise = new Promise(function (resolve, reject) {
16 _this._resolver = resolve;
17 _this._rejector = reject;
18 });
19 this.promise.then(function () { return _this._finalize; }, function () { return _this._finalize; });
20 }
21 Deferred.prototype.callback = function (callback) {
22 var dfd = this;
23 return this.rejectOnError(function () {
24 var args = [];
25 for (var _i = 0; _i < arguments.length; _i++) {
26 args[_i] = arguments[_i];
27 }
28 var returnValue = callback.apply(this, args);
29 dfd.resolve();
30 return returnValue;
31 });
32 };
33 Deferred.prototype.rejectOnError = function (callback) {
34 var dfd = this;
35 return function () {
36 var args = [];
37 for (var _i = 0; _i < arguments.length; _i++) {
38 args[_i] = arguments[_i];
39 }
40 try {
41 return callback.apply(this, args);
42 }
43 catch (error) {
44 dfd.reject(error);
45 }
46 };
47 };
48 Deferred.prototype.resolve = function (value) {
49 this._resolver(value);
50 };
51 Deferred.prototype.reject = function (error) {
52 this._rejector(error);
53 };
54 Deferred.prototype._finalize = function () {
55 this._resolver = function () { };
56 this._rejector = function () { };
57 };
58 return Deferred;
59 }());
60 exports.default = Deferred;
61});
62//# sourceMappingURL=Deferred.js.map
\No newline at end of file