Node.js - 将变量传递给async.parallel中的多个函数

时间:2014-09-16 00:31:37

标签: javascript node.js function asynchronous

我有一组动态加载的函数。每个函数都在自己的文件中,如下所示:

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'变量到每个函数?

1 个答案:

答案 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);