Не проверено, но это должно работать:
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);
Или, если вы уже знаете, сколько аргументов у вас будет, вам не нужно использовать apply
в средней части:
for(var i = 0; i < funcArray.length; i++) {
funcCalls.push(function() {
funcArray[i](arg, arg2); }
);
}
И, наконец, вы можете действительно усилить это с помощью функции карты, как, например, предоставлено, например. Underscore.js
async.parallel(_.map(funcArray,
function(func) { return function() { func(arg, arg2); } }
), next);
... но тогда следующий парень, который найдет ваш код, может убить вас.