【发布时间】:2019-11-06 09:18:46
【问题描述】:
我正在使用 async/await 处理多条记录,并使用 Promise 进行并行处理。请参阅下面的示例代码
let results = [100,200]
let promises = results.map(async record => {
try {
return await processingRecords(record);
} catch (err) {
}
});
await Promise.all(promises);
async function processingRecords(item) {
switch (item['#type']) {
case 'case1':
await Request1(item)
await Request2(item)
break
case 'case2':
await Request3(item)
}
}
但问题是,如果 Request1 出现任何错误,我无法从 Request2 调用中捕获错误如何处理来自两个调用的错误
【问题讨论】:
-
解决方案很大程度上取决于您要在哪里进行错误处理。整体程序架构/设计可能要求在
processingRecords()或其调用者中完成。 -
如果
Request1()抛出一个错误,Request2()将永远不会被调用,那么您希望如何处理来自它的错误?
标签: node.js ecmascript-6 promise async-await