48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
"use strict";
 | 
						|
module.exports =
 | 
						|
    function(Promise, PromiseArray, debug) {
 | 
						|
var PromiseInspection = Promise.PromiseInspection;
 | 
						|
var util = require("./util");
 | 
						|
 | 
						|
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);
 | 
						|
        return true;
 | 
						|
    }
 | 
						|
    return false;
 | 
						|
};
 | 
						|
 | 
						|
SettledPromiseArray.prototype._promiseFulfilled = function (value, index) {
 | 
						|
    var ret = new PromiseInspection();
 | 
						|
    ret._bitField = 33554432;
 | 
						|
    ret._settledValueField = value;
 | 
						|
    return this._promiseResolved(index, ret);
 | 
						|
};
 | 
						|
SettledPromiseArray.prototype._promiseRejected = function (reason, index) {
 | 
						|
    var ret = new PromiseInspection();
 | 
						|
    ret._bitField = 16777216;
 | 
						|
    ret._settledValueField = reason;
 | 
						|
    return this._promiseResolved(index, ret);
 | 
						|
};
 | 
						|
 | 
						|
Promise.settle = function (promises) {
 | 
						|
    debug.deprecated(".settle()", ".reflect()");
 | 
						|
    return new SettledPromiseArray(promises).promise();
 | 
						|
};
 | 
						|
 | 
						|
Promise.allSettled = function (promises) {
 | 
						|
    return new SettledPromiseArray(promises).promise();
 | 
						|
};
 | 
						|
 | 
						|
Promise.prototype.settle = function () {
 | 
						|
    return Promise.settle(this);
 | 
						|
};
 | 
						|
};
 |