Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
81160 views
1
"use strict";
2
module.exports =
3
function(Promise, PromiseArray) {
4
var PromiseInspection = Promise.PromiseInspection;
5
var util = require("./util.js");
6
7
function SettledPromiseArray(values) {
8
this.constructor$(values);
9
}
10
util.inherits(SettledPromiseArray, PromiseArray);
11
12
SettledPromiseArray.prototype._promiseResolved = function (index, inspection) {
13
this._values[index] = inspection;
14
var totalResolved = ++this._totalResolved;
15
if (totalResolved >= this._length) {
16
this._resolve(this._values);
17
}
18
};
19
20
SettledPromiseArray.prototype._promiseFulfilled = function (value, index) {
21
var ret = new PromiseInspection();
22
ret._bitField = 268435456;
23
ret._settledValue = value;
24
this._promiseResolved(index, ret);
25
};
26
SettledPromiseArray.prototype._promiseRejected = function (reason, index) {
27
var ret = new PromiseInspection();
28
ret._bitField = 134217728;
29
ret._settledValue = reason;
30
this._promiseResolved(index, ret);
31
};
32
33
Promise.settle = function (promises) {
34
return new SettledPromiseArray(promises).promise();
35
};
36
37
Promise.prototype.settle = function () {
38
return new SettledPromiseArray(this).promise();
39
};
40
};
41
42