等到所有承诺完成,即使有些承诺被拒绝
2022-08-29 23:03:00
假设我有一组正在发出网络请求的 s,其中一个会失败:Promise
// http://does-not-exist will throw a TypeError
var arr = [ fetch('index.html'), fetch('http://does-not-exist') ]
Promise.all(arr)
.then(res => console.log('success', res))
.catch(err => console.log('error', err)) // This is executed
假设我想等到所有这些都完成了,无论其中一个是否失败了。对于我可以没有的资源,可能会有网络错误,但是如果我能得到,我希望在继续之前。我想优雅地处理网络故障。
由于Promise.all
没有为此留下任何空间,那么在不使用promises库的情况下处理此问题的建议模式是什么?