我正在编写一个小的Node.js命令行实用程序。我将所有内容打包在一个文件中,简化后的结构看起来像这样:
(async() => {
await someAsyncFunction();
/* 1 */
// Iterate through collection and call async functions serially
array.forEach(async (element) => {
await anotherAsyncFunction(element);
});
})().catch(err => console.log);
现在,如果我在第1点抛出一个错误,那么该错误会传递到底部捕获。但是,我想向anotherAsyncFunction
及其周围的for循环添加错误处理。
我尝试创建以下辅助函数:
async function asyncForEach(array, fn) {
for (let i = 0; i < array.length; i+=1) {
await fn(array[index], index, array);
}
}
然后我重新编写了原始的迭代代码,如下所示:
try {
await asyncForEach(array, async (element) => {
await anotherAsyncFunction(element);
});
} catch (err) {
throw err;
}
尽管这确实可行,但似乎非常冗长。有解决这个问题的更好方法吗?
谢谢。