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);