Javascript 等待多个非嵌套回调
假设我有两个(或更多)异步操作Javascript 等待多个非嵌套回调,javascript,asynchronous,callback,coding-style,Javascript,Asynchronous,Callback,Coding Style,假设我有两个(或更多)异步操作op1和op2,它们在完成时调用回调函数。在开始op3之前,我如何最好地等待这两个任务完成? 我无法将它们嵌套在彼此内部(即首先启动op1,然后启动op2,在op1callback()内部启动 (当然,我也不知道这些中的哪一个将首先完成,但我想这并不重要) 最简单的方法是只保留回调状态的标志: let count = 0; function callback() { if(++count === 2) op3(); } op1(callback); op2(
op1
和op2
,它们在完成时调用回调函数。在开始op3
之前,我如何最好地等待这两个任务完成?我无法将它们嵌套在彼此内部(即首先启动
op1
,然后启动op2
,在op1callback()内部启动
(当然,我也不知道这些中的哪一个将首先完成,但我想这并不重要)
最简单的方法是只保留回调状态的标志:
let count = 0;
function callback() {
if(++count === 2) op3();
}
op1(callback); op2(callback);
但从长远来看,让运营部门回报承诺可能是有益的,例如:
async function op1() {
// Do some async stuff and *await* that
return "something";
}
然后你可以做:
Promise.all(op1(), op2()).then(op3);
Promise.all(op1(), op2()).then(op3);