__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
"use strict";
module.exports =
function(Promise, PromiseArray, apiRejection) {
var util = require("./util");
var RangeError = require("./errors").RangeError;
var AggregateError = require("./errors").AggregateError;
var isArray = util.isArray;
var CANCELLATION = {};
function SomePromiseArray(values) {
this.constructor$(values);
this._howMany = 0;
this._unwrap = false;
this._initialized = false;
}
util.inherits(SomePromiseArray, PromiseArray);
SomePromiseArray.prototype._init = function () {
if (!this._initialized) {
return;
}
if (this._howMany === 0) {
this._resolve([]);
return;
}
this._init$(undefined, -5);
var isArrayResolved = isArray(this._values);
if (!this._isResolved() &&
isArrayResolved &&
this._howMany > this._canPossiblyFulfill()) {
this._reject(this._getRangeError(this.length()));
}
};
SomePromiseArray.prototype.init = function () {
this._initialized = true;
this._init();
};
SomePromiseArray.prototype.setUnwrap = function () {
this._unwrap = true;
};
SomePromiseArray.prototype.howMany = function () {
return this._howMany;
};
SomePromiseArray.prototype.setHowMany = function (count) {
this._howMany = count;
};
SomePromiseArray.prototype._promiseFulfilled = function (value) {
this._addFulfilled(value);
if (this._fulfilled() === this.howMany()) {
this._values.length = this.howMany();
if (this.howMany() === 1 && this._unwrap) {
this._resolve(this._values[0]);
} else {
this._resolve(this._values);
}
return true;
}
return false;
};
SomePromiseArray.prototype._promiseRejected = function (reason) {
this._addRejected(reason);
return this._checkOutcome();
};
SomePromiseArray.prototype._promiseCancelled = function () {
if (this._values instanceof Promise || this._values == null) {
return this._cancel();
}
this._addRejected(CANCELLATION);
return this._checkOutcome();
};
SomePromiseArray.prototype._checkOutcome = function() {
if (this.howMany() > this._canPossiblyFulfill()) {
var e = new AggregateError();
for (var i = this.length(); i < this._values.length; ++i) {
if (this._values[i] !== CANCELLATION) {
e.push(this._values[i]);
}
}
if (e.length > 0) {
this._reject(e);
} else {
this._cancel();
}
return true;
}
return false;
};
SomePromiseArray.prototype._fulfilled = function () {
return this._totalResolved;
};
SomePromiseArray.prototype._rejected = function () {
return this._values.length - this.length();
};
SomePromiseArray.prototype._addRejected = function (reason) {
this._values.push(reason);
};
SomePromiseArray.prototype._addFulfilled = function (value) {
this._values[this._totalResolved++] = value;
};
SomePromiseArray.prototype._canPossiblyFulfill = function () {
return this.length() - this._rejected();
};
SomePromiseArray.prototype._getRangeError = function (count) {
var message = "Input array must contain at least " +
this._howMany + " items but contains only " + count + " items";
return new RangeError(message);
};
SomePromiseArray.prototype._resolveEmptyArray = function () {
this._reject(this._getRangeError(0));
};
function some(promises, howMany) {
if ((howMany | 0) !== howMany || howMany < 0) {
return apiRejection("expecting a positive integer\u000a\u000a See http://goo.gl/MqrFmX\u000a");
}
var ret = new SomePromiseArray(promises);
var promise = ret.promise();
ret.setHowMany(howMany);
ret.init();
return promise;
}
Promise.some = function (promises, howMany) {
return some(promises, howMany);
};
Promise.prototype.some = function (howMany) {
return some(this, howMany);
};
Promise._SomePromiseArray = SomePromiseArray;
};
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| any.js | File | 421 B | 0644 |
|
| assert.js | File | 1.61 KB | 0644 |
|
| async.js | File | 4.05 KB | 0644 |
|
| bind.js | File | 1.92 KB | 0644 |
|
| bluebird.js | File | 291 B | 0644 |
|
| call_get.js | File | 4.25 KB | 0644 |
|
| cancel.js | File | 3.62 KB | 0644 |
|
| catch_filter.js | File | 1.39 KB | 0644 |
|
| context.js | File | 2.33 KB | 0644 |
|
| debuggability.js | File | 29.63 KB | 0644 |
|
| direct_resolve.js | File | 1.36 KB | 0644 |
|
| each.js | File | 789 B | 0644 |
|
| errors.js | File | 3.63 KB | 0644 |
|
| es5.js | File | 1.93 KB | 0644 |
|
| filter.js | File | 314 B | 0644 |
|
| finally.js | File | 4.5 KB | 0644 |
|
| generators.js | File | 7.58 KB | 0644 |
|
| join.js | File | 8.03 KB | 0644 |
|
| map.js | File | 5.25 KB | 0644 |
|
| method.js | File | 1.73 KB | 0644 |
|
| nodeback.js | File | 1.52 KB | 0644 |
|
| nodeify.js | File | 1.61 KB | 0644 |
|
| promise.js | File | 25.59 KB | 0644 |
|
| promise_array.js | File | 5.08 KB | 0644 |
|
| promisify.js | File | 11.9 KB | 0644 |
|
| props.js | File | 3.04 KB | 0644 |
|
| queue.js | File | 1.83 KB | 0644 |
|
| race.js | File | 1.22 KB | 0644 |
|
| reduce.js | File | 5.01 KB | 0644 |
|
| schedule.js | File | 2.1 KB | 0644 |
|
| settle.js | File | 1.23 KB | 0644 |
|
| some.js | File | 3.87 KB | 0644 |
|
| synchronous_inspection.js | File | 2.75 KB | 0644 |
|
| thenables.js | File | 2.08 KB | 0644 |
|
| timers.js | File | 2.34 KB | 0644 |
|
| using.js | File | 7.35 KB | 0644 |
|
| util.js | File | 10.28 KB | 0644 |
|