小编Sub*_*kar的帖子

如何在到达下一行之前等待 Promise.all() 完成?

我正在学习 Node.js。

我必须在循环work()内调用异步函数Promise.all(),并且必须在继续执行 Promise.all() 之后的语句之前完成该函数。目前,它到达了FINISH未完成的状态work()

让代码等待 work() 函数完成的正确方法是什么?

const promise1 = Promise.resolve(1);
const promise2 = Promise.resolve(2);
const promise3 = Promise.resolve(3);

async function work() {
    await new Promise((resolve, reject) => {
        setTimeout(resolve, 2000, 'foo');
    })
    console.log('some work here')
}

async function main() {
    await Promise.all([promise1, promise2, promise3]).then((values) => {
        values.forEach(function(item) {
            console.log(item)
            work()
        });
    });
    console.log('FINISH')
}

main()
Run Code Online (Sandbox Code Playgroud)

javascript node.js promise async-await

0
推荐指数
1
解决办法
2444
查看次数

标签 统计

async-await ×1

javascript ×1

node.js ×1

promise ×1