我正在 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/