我有一组动态加载的函数。每个函数都在自己的文件中,如下所示:
module.exports = function(incomingData, done) {
var test = incomingData + " foo -->"
done(null, test);
};
这些被加载到一个对象(' allPluggins'),然后看起来像:
{ 'test-bar': [Function], 'test-foo': [Function] }
我希望使用async.parallel执行所有函数,传递相同的' incomingData'每个变量。
到目前为止,我有:
async.parallel(allPluggins, done());
任何人都可以建议我如何调用async.parallel传入相同的' incomingData'变量到每个函数?
答案 0 :(得分:0)
你可以包装每个函数或bind()
每个函数。例子:
使用包装函数:
var incomingData = 'hello world';
Object.keys(allPluggins).forEach(function(key) {
var fn = allPluggins[key];
allPluggins[key] = function(done) {
fn(incomingData, done);
};
});
async.parallel(allPluggins, done);
使用bind()
:
var incomingData = 'hello world';
var key;
for (key in allPluggins)
allPluggins[key] = allPluggins[key].bind(undefined, incomingData);
async.parallel(allPluggins, done);