首页 > web前端 > js教程 > 如何使用 Promise.all 管理和等待多个 Promise?

如何使用 Promise.all 管理和等待多个 Promise?

Mary-Kate Olsen
发布: 2024-12-24 17:37:11
原创
415 人浏览过

How to Use Promise.all to Manage and Await Multiple Promises?

如何处理多个 Promise 并等待其完成

使用异步代码时,通常需要处理多个 Promise 并等待它们一切都需要在继续之前完成。本文将指导您使用 Promise.all 实现这一目标。

Promise.all 简介

Promise.all 接受一组 Promise 并返回一个可解析的 Promise当所有输入承诺都已解决时,或者如果其中任何一个拒绝,则拒绝。

重组doSomeAsyncStuff 返回 Promise

要使 doSomeAsyncStuff 与 Promise 配合使用,请修改如下:

function doSomeAsyncStuff() {
    return new Promise((resolve) => {
        editor.on('instanceReady', function(evt) {
            doSomeStuff();
            resolve(true);
        });
    });
}
登录后复制

使用 Promise.all 等待所有异步任务

一旦 doSomeAsyncStuff 返回一个承诺,你可以使用 Promise.all 等待它的所有实例完成。这是代码的改进版本:

const promises = [];

for (let i = 0; i < 5; i++) {
    promises.push(doSomeAsyncStuff());
}

Promise.all(promises)
    .then(() => {
        for (let i = 0; i < 5; i++) {
            doSomeStuffOnlyWhenTheAsyncStuffIsFinish();    
        }
    })
    .catch((e) => {
        // Handle errors here
    });
登录后复制

此代码从每次调用 doSomeAsyncStuff 时创建一个承诺数组。 Promise.all 接受这个数组并等待所有的 Promise 解析。一旦所有 Promise 都得到解决,就会执行 then 回调,允许您执行依赖于异步任务结果的操作。

以上是如何使用 Promise.all 管理和等待多个 Promise?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板