在ES7/ES2016中,使用多个await语句不会并行执行函数。相反,它们是按顺序执行的,就像用 Promise 链接 .then() 一样。
示例:
await someCall(); await anotherCall();
在此示例中,anotherCall() 只会是一旦 someCall() 完成,就会调用。
并行化异步函数调用
要并行执行异步函数,有几个选项:
Node.js 中最简单的方法是使用 Promise.all() 来包装要并发执行的异步函数:
await Promise.all([someCall(), anotherCall()]);
这将创建一个代表所有输入承诺的完成的单个承诺。
如果需要存储结果,可以在await语句中使用解构:
let [someResult, anotherResult] = await Promise.all([someCall(), anotherCall()]);
Promise.all 很快就会失败。这意味着如果任何输入承诺被拒绝,整个操作将被拒绝并出现该错误。
以上是如何在 JavaScript 中并发执行异步函数?的详细内容。更多信息请关注PHP中文网其他相关文章!