参考答案:
Promise.race
函数返回一个 Promise
,它将与参数中第一个完成的promise状态相同。它可以是完成( resolves),也可以是失败(rejects),这要取决于第一个完成的方式是两个中的哪个。
如果传的迭代是空的,则返回的 promise 将永远等待。
如果迭代包含一个或多个非承诺值和/或已解决/拒绝的承诺,则 Promise.race 将解析为迭代中找到的第一个值。
1Promise.race = function(arr) { 2 return new Promise(function(resolve, reject) { 3 if (!Array.isArray(arr)) { 4 return reject(new TypeError('Promise.race accepts an array')); 5 } 6 7 for (var i = 0, len = arr.length; i < len; i++) { 8 Promise.resolve(arr[i]).then(resolve, reject); 9 } 10 }); 11}; 12
最近更新时间:2022-05-10