<分区>
鉴于以下
Promise.all(promises).then(resolved => {
...
}).catch(rejected => {
...
});
rejected
将只包含第一个被拒绝的 promise 。有没有办法捕获被拒绝的所有 promise ?
<分区>
鉴于以下
Promise.all(promises).then(resolved => {
...
}).catch(rejected => {
...
});
rejected
将只包含第一个被拒绝的 promise 。有没有办法捕获被拒绝的所有 promise ?
最佳答案
当然,这样做需要等到所有输入 promise 都已解决。只要有一个处于待处理状态,它可能会被拒绝,您就无法确定是否收到了所有拒绝!
因此您可以使用 Promise.all
,但在转换输入 promise 以便捕获拒绝并识别它们之后,也许通过将它们包装在 Error
对象中,如在
caughtPromises = promises.map(promise => promise.catch(Error));
现在过滤 Promise.all
的结果以找到标识为失败的结果:
Promise.all(caughtPromises)
.then(results => results.filter(result => result instanceof Error))
等等。
关于javascript - 是否有可能在 Promise.all 中捕获所有被拒绝的 promise ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40851454/
相关文章:
javascript - 从 HTML 文件中的脚本标签导入 js。可能的?
javascript - ( react )在谷歌地图上打开模式标记点击
javascript - 如何在 bulkwrite 的 for 循环中设置异步/等待?
javascript - window.location.hash 总是显示为空
javascript - 当自定义参数从子组件获取数据时,如何在 React 中传递除了您自己的自定义参数之外的事件参数
javascript - 如何使用异步或 promise 通过 setTimeout 添加随机延迟