javascript - 等待多个非嵌套回调

标签 javascript asynchronous callback coding-style

假设我有两个(或更多)异步操作 op1op2完成后调用回调函数。在开始之前我最好如何等待两者完成op3
无法将它们嵌套在一起(即首先从 op1 开始,然后在 op2 内部从 op1callback() 开始)
(我当然也不知道其中哪一个将首先完成,但我想这并不重要)

function op1callback {
}
function op2callback {
}
function op3 {
...
}

最佳答案

最简单的方法是保留有关回调状态的标志:

let count = 0;

function callback() {
  if(++count === 2) op3();
}

op1(callback); op2(callback);

但从长远来看,让操作返回 promise 可能是有益的,例如:

 async function op1() { 
   // Do some async stuff and *await* that
   return "something";
 }

那么你可以这样做:

 Promise.all(op1(), op2()).then(op3);

关于javascript - 等待多个非嵌套回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51285888/

相关文章:

javascript - 什么是自动确定用户位置的好javascript

javascript - 修改 Cordova 插件加载行为以加快加载时间

javascript - 在 Google 地理编码中使用回调函数

c - 在 C 的回调函数中 fork() 是否安全?

javascript - 在对象内部创建原型(prototype)方法有什么缺点?

c# - 处理潜在危险的查询字符串

flutter - Flutter(Dart)中如何在执行另一个方法后执行一个方法

asynchronous - 响应式设计和 Google Adsense - 无法让它发挥作用

javascript - 无法读取 undefined 的属性...,在 Object.callback 从 Native In angular 2

javascript - submit() 函数有回调吗?