javascript - 等待两个异步函数完成,然后在 Node.js 中继续

标签 javascript node.js

我正在 Node.js 中开发一个应用程序,我在其中调用异步函数两次,并将值分配给全局变量。

问题是我想使用这两个调用的结果来做其他事情,但是这个其他事情不会等待结果被分配。

这是我的代码:

var a;
var b;

let x = 'abcd';
foo(x).then(data=>{
    a = data;
});

x = 'efgh';
foo(x).then(data=>{
    b = data;
});

console.log(a + b); // for example

如何在执行 a + b 之前等待这两个函数完成?

最佳答案

您可以在此处使用 Promise.all 来等待两个 promise,然后处理它们的数据:

let promises = [];
let x = 'abcd';
promises.push(foo(x))

x = 'efgh';
promises.push(foo(x))

Promise.all(promises).then(([a, b]) => {
  console.log(a, b); // for example
});


function foo(d) {
  return Promise.resolve({somePaddingData:"", d});
}

关于javascript - 等待两个异步函数完成,然后在 Node.js 中继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52259310/

相关文章:

node.js - 如何在 Node js 中链接 Angular 2?

javascript - Angular 中的路由问题(URL 中出现 "!")

javascript - 如何为 d3 中的可视化创建一个函数而不是 3 个或更多函数,然后在将鼠标悬停在节点上时添加突出显示

javascript - 如何使用 NightWatch 验证文件是否已下载

javascript - 在 JSONP 和 jQuery 中使用 PUT/POST/DELETE

javascript - $(this) 和范围 - 传递特定元素

javascript - 如何在 node.js 中提取一个对象,哪个对象是使用 bert.js 解码的?

javascript - 位置 1 的 JSON 中的意外标记 u

javascript - 在不链接回调函数的情况下从 Node JS GET 请求访问数据

json - "Unexpected token in JSON at position 0"?