Javascript 将参数传递给node.js中的async.parallel

Javascript 将参数传递给node.js中的async.parallel,javascript,node.js,asynchronous,Javascript,Node.js,Asynchronous,我试图创建一个最小的例子,在这里我可以完成我上面描述的。出于这个目的,这里是我尝试的一个最小的例子,在最后我希望看到的输出 1的负数是-1 2加1等于3 这是我的密码 var async = require('async'); var i, args = [1, 2]; var names = ["negative", "plusOne"]; var funcArray = [ function negative(number, callback

我试图创建一个最小的例子,在这里我可以完成我上面描述的。出于这个目的,这里是我尝试的一个最小的例子,在最后我希望看到的输出

1的负数是-1

2加1等于3

这是我的密码

var async = require('async');
var i, args = [1, 2];
var names = ["negative", "plusOne"];

var funcArray = [
    function negative(number, callback) {
        var neg = 0 - number;
        console.log("negative of " + number + " is " + neg);
        callback(null, neg);
    },
    function plusOne(number, callback) {
        setTimeout(function(number, callback) {
            var onemore = number + 1
            console.log("plus one of " + number + " is " + onemore);
            callback(null, onemore);
        }, 3000);
    }];

var funcCalls = {};
for (i = 0; i < 2; i++) {
    funcCalls[names[i]] = function() {
        funcArray[i].apply(this, args[i]);
    };
}

async.parallel(funcCalls, function(error, results) {
    console.log("Parallel ended with error " + error);
    console.log("Results: " + JSON.stringify(results));
});
var async=require('async');
变量i,args=[1,2];
var名称=[“负”、“强”];
变量funcArray=[
函数负数(数字,回调){
var neg=0-数字;
console.log(“负的“+number+”是“+neg”);
回调(null,neg);
},
函数plusOne(数字,回调){
setTimeout(函数(编号、回调){
var onemore=number+1
console.log(“加上“+number+”中的一个是“+onemore”);
回调(null,一个或多个);
}, 3000);
}];
var funcCalls={};
对于(i=0;i<2;i++){
funcCalls[names[i]=function(){
funcArray[i].apply(这个,args[i]);
};
}
parallel(函数调用、函数(错误、结果){
console.log(“并行结束时出现错误”+错误);
log(“结果:+JSON.stringify(结果));
});
请注意,我还将一个命名对象传递给async.parallel。传递数组(并且完全忘记名称)对我来说也是一个答案,但我更感兴趣的是传递这样一个对象


关于实现我的目标有什么想法吗?

为什么不绑定初始值?然后你会有这样的东西:

async.parallel([
    negative.bind(null, -1),
    plusOne.bind(null, 3)
], function(err, res) {
    console.log(err, res);
});

当然,您可以使用各种参数生成列表。这只是给出了一个简化方法的想法。

相反,您可以使用
异步。也可以应用

async.parallel(
[
  async.apply(negative, -1), //callback is automatically passed to the function
  async.apply(positive, 3)
],
(error, results) => {
console.log(error, results);
})

为什么要这样做?如果需要,可以使用
f.name
获取函数名。。。但我不确定我是否理解您想要做的事情。正如标题所说,我希望向使用async.parallel调用的每个函数传递不同的参数。所以,我想并行运行
负(1,cb)
普卢松(2,cb)
。有道理吗?这个想法是,在注册一些对等点的过程中,我希望在不同的集合中并行创建一些对象。我可以写下我打算传递给这样一个函数的(单个)参数,然后用async.parallel调用它们。这将使代码更加清晰。我想说的有道理吗?看起来很好。我的印象是我尝试了绑定,但显然做得不对我当然接受了。谢谢你抽出时间,没问题。记住传递上下文(即
this
null
)非常重要,否则它将无法工作
bind
async
配合使用效果很好。非常感谢!:)