在 JavaScript 中,等待多个异步函数可能会给人一种它们是按顺序执行而不是同时执行的印象。这就提出了一个问题:我们如何实现这些函数的并行执行?
要并行执行异步函数,可以使用 Promise.all( ) 功能。它接受一个 Promise 数组作为参数,并返回一个在数组中的所有 Promise 解析时解析的 Promise。
await Promise.all([someCall(), anotherCall()]);
在此代码中,同时调用 someCall() 和 anotherCall(),并且只有当两个函数都完成执行后,脚本才会继续。
如果您想访问并行异步调用的结果,你可以解构 Promise.all() 返回的数组:
let [someResult, anotherResult] = await Promise.all([someCall(), anotherCall()]);
需要注意的是,Promise.all() 遵循“快速失败”行为“ 方法。如果数组中的任何 Promise 被拒绝,则整个 Promise.all() Promise 将被拒绝,并显示第一个失败 Promise 的错误:
// If any of the promises fails, it will reject Promise.all([happy('happy', 100), sad('sad', 50)]).then(console.log).catch(console.log);
以上是如何同时执行多个异步 JavaScript 函数?的详细内容。更多信息请关注PHP中文网其他相关文章!