185 lines
5.0 KiB
JavaScript
185 lines
5.0 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(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);
|
|
});
|
|
}
|
|
);
|
|
}
|
|
function n() {}
|
|
function t(e) {
|
|
if (!(this instanceof t)) 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 = []),
|
|
u(e, this);
|
|
}
|
|
function o(e, n) {
|
|
for (; 3 === e._state; ) e = e._value;
|
|
0 !== e._state
|
|
? ((e._handled = !0),
|
|
t._immediateFn(function () {
|
|
var t = 1 === e._state ? n.onFulfilled : n.onRejected;
|
|
if (null !== t) {
|
|
var o;
|
|
try {
|
|
o = t(e._value);
|
|
} catch (f) {
|
|
return void i(n.promise, f);
|
|
}
|
|
r(n.promise, o);
|
|
} else (1 === e._state ? r : i)(n.promise, e._value);
|
|
}))
|
|
: e._deferreds.push(n);
|
|
}
|
|
function r(e, n) {
|
|
try {
|
|
if (n === e) throw new TypeError('A promise cannot be resolved with itself.');
|
|
if (n && ('object' == typeof n || 'function' == typeof n)) {
|
|
var o = n.then;
|
|
if (n instanceof t) return (e._state = 3), (e._value = n), void f(e);
|
|
if ('function' == typeof o)
|
|
return void u(
|
|
(function (e, n) {
|
|
return function () {
|
|
e.apply(n, arguments);
|
|
};
|
|
})(o, n),
|
|
e
|
|
);
|
|
}
|
|
(e._state = 1), (e._value = n), f(e);
|
|
} catch (r) {
|
|
i(e, r);
|
|
}
|
|
}
|
|
function i(e, n) {
|
|
(e._state = 2), (e._value = n), f(e);
|
|
}
|
|
function f(e) {
|
|
2 === e._state &&
|
|
0 === e._deferreds.length &&
|
|
t._immediateFn(function () {
|
|
e._handled || t._unhandledRejectionFn(e._value);
|
|
});
|
|
for (var n = 0, r = e._deferreds.length; r > n; n++) o(e, e._deferreds[n]);
|
|
e._deferreds = null;
|
|
}
|
|
function u(e, n) {
|
|
var t = !1;
|
|
try {
|
|
e(
|
|
function (e) {
|
|
t || ((t = !0), r(n, e));
|
|
},
|
|
function (e) {
|
|
t || ((t = !0), i(n, e));
|
|
}
|
|
);
|
|
} catch (o) {
|
|
if (t) return;
|
|
(t = !0), i(n, o);
|
|
}
|
|
}
|
|
var c = setTimeout;
|
|
(t.prototype['catch'] = function (e) {
|
|
return this.then(null, e);
|
|
}),
|
|
(t.prototype.then = function (e, t) {
|
|
var r = new this.constructor(n);
|
|
return (
|
|
o(
|
|
this,
|
|
new (function (e, n, t) {
|
|
(this.onFulfilled = 'function' == typeof e ? e : null),
|
|
(this.onRejected = 'function' == typeof n ? n : null),
|
|
(this.promise = t);
|
|
})(e, t, r)
|
|
),
|
|
r
|
|
);
|
|
}),
|
|
(t.prototype['finally'] = e),
|
|
(t.all = function (e) {
|
|
return new t(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]);
|
|
});
|
|
}),
|
|
(t.resolve = function (e) {
|
|
return e && 'object' == typeof e && e.constructor === t
|
|
? e
|
|
: new t(function (n) {
|
|
n(e);
|
|
});
|
|
}),
|
|
(t.reject = function (e) {
|
|
return new t(function (n, t) {
|
|
t(e);
|
|
});
|
|
}),
|
|
(t.race = function (e) {
|
|
return new t(function (n, t) {
|
|
for (var o = 0, r = e.length; r > o; o++) e[o].then(n, t);
|
|
});
|
|
}),
|
|
(t._immediateFn =
|
|
('function' == typeof setImmediate &&
|
|
function (e) {
|
|
setImmediate(e);
|
|
}) ||
|
|
function (e) {
|
|
c(e, 0);
|
|
}),
|
|
(t._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');
|
|
})();
|
|
'Promise' in l
|
|
? l.Promise.prototype['finally'] || (l.Promise.prototype['finally'] = e)
|
|
: (l.Promise = t);
|
|
});
|