-
Notifications
You must be signed in to change notification settings - Fork 311
Open
Description
源码:
function any(arr) {
var P = this;
return new P(function(resolve, reject) {
if (!(arr && typeof arr.length !== 'undefined')) {
return reject(new TypeError('Promise.any accepts an array'));
}
var args = Array.prototype.slice.call(arr);
if (args.length === 0) return reject();
var rejectionReasons = [];
for (var i = 0; i < args.length; i++) {
try {
P.resolve(args[i])
.then(resolve)
.catch(function(error) {
rejectionReasons.push(error);
if (rejectionReasons.length === args.length) {
reject(
new AggregateError(
rejectionReasons,
'All promises were rejected'
)
);
}
});
} catch (ex) {
reject(ex);
}
}
});
}catch is a keyword, ie8 calling directly as a function name will result in an error
function any(arr) {
var P = this;
return new P(function(resolve, reject) {
if (!(arr && typeof arr.length !== 'undefined')) {
return reject(new TypeError('Promise.any accepts an array'));
}
var args = Array.prototype.slice.call(arr);
if (args.length === 0) return reject();
var rejectionReasons = [];
for (var i = 0; i < args.length; i++) {
try {
P.resolve(args[i])
.then(resolve)['catch'](function(error) { // Modify to square brackets to call without error
rejectionReasons.push(error);
if (rejectionReasons.length === args.length) {
reject(
new AggregateError(
rejectionReasons,
'All promises were rejected'
)
);
}
});
} catch (ex) {
reject(ex);
}
}
});
}Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels