Chr*_*s_F 4 javascript ecmascript-6 es6-promise
鉴于以下内容
Promise.all(promises).then(resolved => {
...
}).catch(rejected => {
...
});
Run Code Online (Sandbox Code Playgroud)
rejected只会包含被拒绝的第一个承诺.有没有办法捕捉所有被拒绝的承诺?
小智 15
当然,这样做需要等到所有输入承诺都已解决.只要有一个待定,可能会拒绝,你就不能确定你有所有的拒绝!
所以你可以使用Promise.all,但是在转换输入promises以便捕获拒绝并识别它们之后,可能将它们包装在一个Error对象中,就像在
caughtPromises = promises.map(promise => promise.catch(Error));
Run Code Online (Sandbox Code Playgroud)
现在过滤结果Promise.all以找到标识为失败的结果:
Promise.all(caughtPromises)
.then(results => results.filter(result => result instanceof Error))
Run Code Online (Sandbox Code Playgroud)
etvoilà.
| 归档时间: |
|
| 查看次数: |
6694 次 |
| 最近记录: |