两个并行运行的异步函数都完成执行时的捕获时刻

时间:2014-05-23 10:38:11

标签: javascript asynchronous

我有两个独立的异步函数在运行。我也得到了两个函数的预期结果。我的代码块看起来像这样:

asyncFunc1(arg1A, arg2A, function(result){
  console.log(result);
});

asyncFunc2(arg1B, arg2B, function(result2){
  console.log(result2);
})

从视觉上可以看出,一个函数比另一个函数更早地返回结果。当异步函数完成执行并且结果和结果2都可用时,有没有办法可以捕捉到这一点?

任何帮助都会非常感激!

1 个答案:

答案 0 :(得分:2)

var numFinished = 0;
var bothFinished = function()
{
    console.log('both functions have returned');
}

asyncFunc1(arg1A, arg2A, function(result){
  console.log(result);
  (++numFinished == 2) && bothFinished();
});

asyncFunc2(arg1B, arg2B, function(result2){
  console.log(result2);
  (++numFinished == 2) && bothFinished();
})