题目描述
执行promise.all(p1,p2,p3);
p1延迟100ms,p2延迟1000ms,p3延迟1500ms
p1为reject,p2、p3为resolve;
假设promises = [p1, p2, p3]
代码
function waitForAll(...promises){
return Promise.all(promises);
}
你期待的结果是什么?实际看到的错误信息又是什么?
修改代码,函数最终返回reject,且执行总时长大于等于1500ms
执行promise.all(p1,p2,p3);
p1延迟100ms,p2延迟1000ms,p3延迟1500ms
p1为reject,p2、p3为resolve;
假设promises = [p1, p2, p3]
function waitForAll(...promises){
return Promise.all(promises);
}
修改代码,函数最终返回reject,且执行总时长大于等于1500ms
13 回答12.9k 阅读
7 回答2.1k 阅读
3 回答2.6k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
6 回答1.1k 阅读
基本思路,catch() 所有 reject ,并记录,同时 resolve。
然后,等所有 Promise resolve 之后,检查是否有 Promise reject ,如果有,那么 reject(通过 throw)。