如何确定异步调用是否是最后一个

时间:2013-06-10 08:13:30

标签: node.js design-patterns asynchronous

使用异步语言(在我的情况下为node.js)我经常最终得到一个二维循环,最后是response

firstArray.forEach(function(first){
     sencondArray[first].forEach(function(second){

         doStuff(function callback(resultSum){
             if(isLastCallback(this))
                 response.send(resultSum);
         });

     });
});

我获得isLastCallback正确结果的第一种方法是使用i次迭代提供的计数器forEach,但结果却非常混乱。

检测callback的当前运行是否是最后一次的常用方法是什么?

1 个答案:

答案 0 :(得分:3)

我认为你要找的是做几个异步调用然后合并结果。您应该查看async模块。你可能想要async#parallel。它将并行运行您的异步函数,然后使用所有结果的数组调用最终回调。