关于promise.all处理reject求助
let resultData = []
try {
resultData = await Promise.all([
this.get(API.getCustomSpeech),
this.get(API.getUserConfiguration),
this.post((API.getFirstConvList))
])
}catch(e){
console.log(e)
}
正常情况下resultData是包含三个正确返回结果的数组,但是,当某一个网络请求返回reject时,我在node8下测试的结果是,流程走到catch中,且只返回对应的reject,丢失了其他2个正常的返回结果。
想要的结果是:
能够拿到2个resolve和一个reject。我在catch对reject做错误处理。
promisen能做到吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
@nurdun
这样写,将2个本来异步的操作变成了同步: 先tet后data,我们需要一种更好的方法,让tet和data异步执行,promise.all接受2个异步的结果,无论是否正确返回,返回的数据都应该保存在promise.all的结果数组中。
或许可以这么做:
将err结果也封装成resolve返回,这样,所有返回都在promise.all中。
关于promise.all()这种问题确实存在的,可能又解决方法,但是我个人更喜欢用这种方式,你可以参考一下