如何在 Async/Await 函数中使用 forEach 循环
你不 应该 在 forEach()
一个异步函数,因为没有办法处理错误。
// Unhandled promise rejection!
[1, 2, 3].forEach(async() => {
await new Promise(resolve => setTimeout(resolve, 10));
throw new Error('Oops!');
});
而不是使用 arr.forEach(myAsyncFunction)
,你应该使用 Promise.all(arr.map(myAsyncFunction))
,它可以让您捕获错误。
Promise.
all([1, 2, 3].map(async() => {
await new Promise(resolve => setTimeout(resolve, 10));
throw new Error('Oops!');
})).
catch(err => {
err.message; // Oops!
});
并联与串联
使用 Promise.all(arr.map(myAsyncFunction))
执行 myAsyncFunction
关于所有元素 arr
而 并联 不是 串联 。
执行 myAsyncFunction
关于所有元素 arr
在系列中,您应该使用 for/of
环形。
我们建议使用 for/of
而不是 forEach()
一般用于遍历数组 。
for (const el of arr) {
await myAsyncFunction(el);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论