两个异步函数完成后的回调

时间:2018-05-01 18:44:07

标签: javascript asynchronous callback

我想在另外两个异步函数(updateDocument1& 2)完成后调用函数[addUp()]。两个异步函数之后的回调似乎对我不起作用....

/*Two asynchronous functions are now called, they both update the
the same document*/

updateDocument1();
updateDoucment2();


/* after this has been completed, I would like to call the final function
which adds two keys together of the updated document*/

addUp();

我非常感谢您提供的各种建议/链接/解决方案。 非常感谢。

1 个答案:

答案 0 :(得分:2)

你应该使用promises,MDN docs:

var promise1 = Promise.resolve(3);
var promise2 = 42;
var promise3 = new Promise(function(resolve, reject) {
  setTimeout(resolve, 100, 'foo');
});

Promise.all([promise1, promise2, promise3]).then(function(values) {
  console.log(values);
});
// expected output: Array [3, 42, "foo"]

您也可以执行异步/等待,但无论如何都是建立在承诺之上的。

async function updateDocument1() { 
  //logic;
}
async function updateDocument2() {
  //logic;
}
await updateDocument1();
await updateDocument2();
addUp();

await Promise.all([updateDocument1(), updateDocument2()]);