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

Node.js - passing variable to multiple functions within async.parallel

本文关键字:parallel 函数 async js- 变量 Node      更新时间:2023-09-26

我有一组动态加载的函数。每个函数都在自己的文件中,看起来像:

module.exports = function(incomingData, done) {
    var test = incomingData + " foo -->"
    done(null, test);
};

这些被加载到一个对象("allPluggins")中,然后看起来像:

{ 'test-bar': [Function], 'test-foo': [Function] }

我希望使用async.parallet执行所有函数,并将相同的"incomingData"变量传递给每个函数。

到目前为止,我有:

async.parallel(allPluggins, done());

有人能建议我如何调用async.parallet,将相同的"incomingData"变量传递给每个函数吗?

您可以包装每个函数或每个函数的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);