node-async是否处理常见的“并行获取”工作流程?

时间:2013-09-02 10:07:48

标签: node.js parallel-processing node-async

我经常发现自己编写函数来处理一系列项目:

  • 异步函数并行运行多次,每个函数使用数组的不同项作为其参数
  • 所有功能完成后触发的计数器

例如:

function getThings(callback){
  thingsLeftToCheck = things.length;
  things.forEach(function(thing){
    thing.refresh(function(){
      thingsLeftToCheck--;
      if ( ! thingsLeftToCheck ) {
        callback();
      }
    });
  })
}

我经常将Caolan's async library用于其他工作流程样式任务,但我似乎无法找到与此工作流程相对应的内容。例如,async.parallel是关于并行运行许多不同的函数,而我想要的是使用不同的参数运行相同的函数:

async是否提供类似的内容?

1 个答案:

答案 0 :(得分:0)

实际上看起来async.each就是这样。快速演示(使用超时)

var items = ['one','two']
var results = []
var doStuff = function(item, callback){
  setTimeout(function(){
    results.push('result'+item)
    callback(null)
  })
}

将返回:

[ 'resultone', 'resulttwo' ]