Files

44 lines
1.2 KiB
JavaScript
Raw Permalink Normal View History

2015-04-20 05:31:12 -04:00
"use strict";
module.exports =
2015-12-16 09:12:35 -08:00
function(Promise, PromiseArray, debug) {
2015-04-20 05:31:12 -04:00
var PromiseInspection = Promise.PromiseInspection;
2015-12-16 09:12:35 -08:00
var util = require("./util");
2015-04-20 05:31:12 -04:00
function SettledPromiseArray(values) {
this.constructor$(values);
}
util.inherits(SettledPromiseArray, PromiseArray);
SettledPromiseArray.prototype._promiseResolved = function (index, inspection) {
this._values[index] = inspection;
var totalResolved = ++this._totalResolved;
if (totalResolved >= this._length) {
this._resolve(this._values);
2015-12-16 09:12:35 -08:00
return true;
2015-04-20 05:31:12 -04:00
}
2015-12-16 09:12:35 -08:00
return false;
2015-04-20 05:31:12 -04:00
};
SettledPromiseArray.prototype._promiseFulfilled = function (value, index) {
var ret = new PromiseInspection();
2015-12-16 09:12:35 -08:00
ret._bitField = 33554432;
ret._settledValueField = value;
return this._promiseResolved(index, ret);
2015-04-20 05:31:12 -04:00
};
SettledPromiseArray.prototype._promiseRejected = function (reason, index) {
var ret = new PromiseInspection();
2015-12-16 09:12:35 -08:00
ret._bitField = 16777216;
ret._settledValueField = reason;
return this._promiseResolved(index, ret);
2015-04-20 05:31:12 -04:00
};
Promise.settle = function (promises) {
2015-12-16 09:12:35 -08:00
debug.deprecated(".settle()", ".reflect()");
2015-04-20 05:31:12 -04:00
return new SettledPromiseArray(promises).promise();
};
Promise.prototype.settle = function () {
2015-12-16 09:12:35 -08:00
return Promise.settle(this);
2015-04-20 05:31:12 -04:00
};
};