javascript - 在nodejs/js中组织async wait函数

标签 javascript node.js async-await

我经常使用这种模式在 js/nodejs 中组织代码

(async function(){

    let resultOne = await functionOne();
    let resultTwo = await functionTwo();

    return {
        resultOne: resultOne,
        resultTwo: resultTwo,
    }

}()).then(r=>{
    console.log(r);
}).catch(err=>{
    console.log(err);
});

但是我想并行执行functionOnefunctionTwo,而不是等待previos返回promise。只等最后一位归来。 我怎样才能实现它?

最佳答案

如果您不希望它们按顺序运行,请使用 Promise.all :

Promise.all([functionOne(), functionTwo()]).then(([resultOne, resultTwo]) => {
    console.log({resultOne, resultTwo});
}).catch(err => {
    console.log(err);
});

(async function(){
    const [resultOne, resultTwo] = await Promise.all([functionOne(), functionTwo()]);
    return {resultOne, resultTwo};
}()).then(r => {
    console.log(r);
}).catch(err => {
    console.log(err);
});

关于javascript - 在nodejs/js中组织async wait函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60788578/

相关文章:

javascript - 如果链接在父元素内,我如何更改父元素的类?

javascript - 如何在 JavaScript 中使用正则表达式优雅地提取字符串?

c++ - [] 不允许重载 C++ 函数数组

javascript - 递归 - Node 内存不足

javascript - 在 nodemailer 中,如何格式化文本电子邮件正文

c# - Web API Controller 返回任务并不总是等待任务完成(puppeteer-sharp)

javascript - 清除页面并重新加载 Controller ?

JavaScript、AJAX快速循环

c# - 无法从 Task<> 隐式转换类型

c# - 异步方法中的 Await 与 Task.Result