188 lines
5 KiB
JavaScript
188 lines
5 KiB
JavaScript
!(function (e, n) {
|
|
"object" == typeof exports && "undefined" != typeof module
|
|
? n()
|
|
: "function" == typeof define && define.amd
|
|
? define(n)
|
|
: n();
|
|
})(0, function () {
|
|
"use strict";
|
|
function e() {}
|
|
function n(e) {
|
|
if (!(this instanceof n))
|
|
throw new TypeError("Promises must be constructed via new");
|
|
if ("function" != typeof e) throw new TypeError("not a function");
|
|
(this._state = 0),
|
|
(this._handled = !1),
|
|
(this._value = undefined),
|
|
(this._deferreds = []),
|
|
f(e, this);
|
|
}
|
|
function t(e, t) {
|
|
for (; 3 === e._state; ) e = e._value;
|
|
0 !== e._state
|
|
? ((e._handled = !0),
|
|
n._immediateFn(function () {
|
|
var n = 1 === e._state ? t.onFulfilled : t.onRejected;
|
|
if (null !== n) {
|
|
var i;
|
|
try {
|
|
i = n(e._value);
|
|
} catch (f) {
|
|
return void r(t.promise, f);
|
|
}
|
|
o(t.promise, i);
|
|
} else (1 === e._state ? o : r)(t.promise, e._value);
|
|
}))
|
|
: e._deferreds.push(t);
|
|
}
|
|
function o(e, t) {
|
|
try {
|
|
if (t === e)
|
|
throw new TypeError("A promise cannot be resolved with itself.");
|
|
if (t && ("object" == typeof t || "function" == typeof t)) {
|
|
var o = t.then;
|
|
if (t instanceof n) return (e._state = 3), (e._value = t), void i(e);
|
|
if ("function" == typeof o)
|
|
return void f(
|
|
(function (e, n) {
|
|
return function () {
|
|
e.apply(n, arguments);
|
|
};
|
|
})(o, t),
|
|
e
|
|
);
|
|
}
|
|
(e._state = 1), (e._value = t), i(e);
|
|
} catch (u) {
|
|
r(e, u);
|
|
}
|
|
}
|
|
function r(e, n) {
|
|
(e._state = 2), (e._value = n), i(e);
|
|
}
|
|
function i(e) {
|
|
2 === e._state &&
|
|
0 === e._deferreds.length &&
|
|
n._immediateFn(function () {
|
|
e._handled || n._unhandledRejectionFn(e._value);
|
|
});
|
|
for (var o = 0, r = e._deferreds.length; r > o; o++) t(e, e._deferreds[o]);
|
|
e._deferreds = null;
|
|
}
|
|
function f(e, n) {
|
|
var t = !1;
|
|
try {
|
|
e(
|
|
function (e) {
|
|
t || ((t = !0), o(n, e));
|
|
},
|
|
function (e) {
|
|
t || ((t = !0), r(n, e));
|
|
}
|
|
);
|
|
} catch (i) {
|
|
if (t) return;
|
|
(t = !0), r(n, i);
|
|
}
|
|
}
|
|
var u = function (e) {
|
|
var n = this.constructor;
|
|
return this.then(
|
|
function (t) {
|
|
return n.resolve(e()).then(function () {
|
|
return t;
|
|
});
|
|
},
|
|
function (t) {
|
|
return n.resolve(e()).then(function () {
|
|
return n.reject(t);
|
|
});
|
|
}
|
|
);
|
|
},
|
|
c = setTimeout;
|
|
(n.prototype["catch"] = function (e) {
|
|
return this.then(null, e);
|
|
}),
|
|
(n.prototype.then = function (n, o) {
|
|
var r = new this.constructor(e);
|
|
return (
|
|
t(
|
|
this,
|
|
new (function (e, n, t) {
|
|
(this.onFulfilled = "function" == typeof e ? e : null),
|
|
(this.onRejected = "function" == typeof n ? n : null),
|
|
(this.promise = t);
|
|
})(n, o, r)
|
|
),
|
|
r
|
|
);
|
|
}),
|
|
(n.prototype["finally"] = u),
|
|
(n.all = function (e) {
|
|
return new n(function (n, t) {
|
|
function o(e, f) {
|
|
try {
|
|
if (f && ("object" == typeof f || "function" == typeof f)) {
|
|
var u = f.then;
|
|
if ("function" == typeof u)
|
|
return void u.call(
|
|
f,
|
|
function (n) {
|
|
o(e, n);
|
|
},
|
|
t
|
|
);
|
|
}
|
|
(r[e] = f), 0 == --i && n(r);
|
|
} catch (c) {
|
|
t(c);
|
|
}
|
|
}
|
|
if (!e || "undefined" == typeof e.length)
|
|
throw new TypeError("Promise.all accepts an array");
|
|
var r = Array.prototype.slice.call(e);
|
|
if (0 === r.length) return n([]);
|
|
for (var i = r.length, f = 0; r.length > f; f++) o(f, r[f]);
|
|
});
|
|
}),
|
|
(n.resolve = function (e) {
|
|
return e && "object" == typeof e && e.constructor === n
|
|
? e
|
|
: new n(function (n) {
|
|
n(e);
|
|
});
|
|
}),
|
|
(n.reject = function (e) {
|
|
return new n(function (n, t) {
|
|
t(e);
|
|
});
|
|
}),
|
|
(n.race = function (e) {
|
|
return new n(function (n, t) {
|
|
for (var o = 0, r = e.length; r > o; o++) e[o].then(n, t);
|
|
});
|
|
}),
|
|
(n._immediateFn =
|
|
("function" == typeof setImmediate &&
|
|
function (e) {
|
|
setImmediate(e);
|
|
}) ||
|
|
function (e) {
|
|
c(e, 0);
|
|
}),
|
|
(n._unhandledRejectionFn = function (e) {
|
|
void 0 !== console &&
|
|
console &&
|
|
console.warn("Possible Unhandled Promise Rejection:", e);
|
|
});
|
|
var l = (function () {
|
|
if ("undefined" != typeof self) return self;
|
|
if ("undefined" != typeof window) return window;
|
|
if ("undefined" != typeof global) return global;
|
|
throw Error("unable to locate global object");
|
|
})();
|
|
l.Promise
|
|
? l.Promise.prototype["finally"] || (l.Promise.prototype["finally"] = u)
|
|
: (l.Promise = n);
|
|
});
|