怎么让异步结果按顺序填入到数组中呢? Promise Promise.all()

发布于 2022-09-12 04:33:35 字数 647 浏览 16 评论 0

const p1 = () => {

return new Promise((resolve, reject) => {

setTimeout(function () {

resolve("p1");

}, 2000);

})

}

const p2 = () => {

return Promise.resolve(2);

}

const p3 = () => {

return Promise.resolve(3);

}

  

promiseAll([p1(), p2(), p3()]).then(res => {

console.log(res);

});


function promiseAll(arr) {

return new Promise( (resolve, reject) => {

let result = [];

for (var i = 0; i < arr.length; i++) {

arr[i].then(res => {

result.push(res); // 怎么让这个 res按循序填入数组中呢?

if (result.length == arr.length) {

resolve(result);

}

}).catch(err => {

reject(err);

})

}

})

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

情魔剑神 2022-09-19 04:33:36
Promise.all([p1(), p2(), p3()])
    .then(function(result){
        console.log(result) // ["p1",2,3]
    })
南风起 2022-09-19 04:33:35

使用 async ... await 格式转换成按顺序执行

async function(){
    const a = await Promise();
    const b = await Promise();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文