nodejsasynchronous同一个参数的函数数组?

如何将相同的参数应用于一组函数?

作品:

async.parallel([func(arg, arg2), func2(arg, arg2)], function() { next(); }); 

数组里有不确定的/各种函数的function,所以我不知道我应该把哪些函数发送给并行方法。

在各种文件中,我正在构build函数数组:

 funcArray.push(func2) 

结果我有这样一个数组:

 [func, func2] 

我想只是做:

 async.parallel(funcArray, function() { next(); }); 

所有的function都有相同的论点。 我怎样才能做到这一点? 谢谢。

结束写我自己的:

  _.each(obj, function (func) { func(req, res, function () { i++ if (i == objSize) { next() } }) }) 

未经testing,但这应该工作:

 var args = [ arg, arg2 ] , funcCalls = [] ; for(var i = 0; i < funcArray.length; i++) { funcCalls.push(function() { funcArray[i].apply(this, args); } ); } async.parallel(funcCalls, next); 

或者,如果你已经知道有多less个参数,你不需要在中间部分使用apply

 for(var i = 0; i < funcArray.length; i++) { funcCalls.push(function() { funcArray[i](arg, arg2); } ); } 

最后你可以使用Underscore.js提供的map函数来加强它:

 async.parallel(_.map(funcArray, function(func) { return function() { func(arg, arg2); } } ), next); 

…但接下来遇到你的代码的人可能会杀了你。