假设我有一个包含名称的表,我想在函数中使用所有这些名称。
例如var names = ['joe','sam', 'nick'];
假设我有以下功能:
function doSomething (string1, NAME, string2, callback){
....
console.log(string1," ",NAME," ",string2);
...
callback(null,"ok");
}
假设它是异步的,我将使用async.each
函数。
而且,我想在函数中传递变量,使用bind这样:
async.each(names,doSomething.bind(this, "example1", "example2",function(err){
console.log(err);
});
我收到以下消息:
example1 example2 joe
example1 example2 nick
example1 example2 sam
我想要的是在第一和第三位置绑定字符串并将名称分配给第二个。可以这样做吗?如何? 我在这里错过了JavaScript的基础知识吗?
答案 0 :(得分:5)
我想要的是在第一和第三位置绑定字符串并将名称分配给第二个。可以这样做吗?
不在.bind
。它只允许您绑定第一个n
参数,但不能绑定第一个n
中的某些参数。
您可以简单地使用其他功能:
async.each(names, function(name, cb) {
doSomething("example1", name, "example2", cb);
});
并以您喜欢的任何顺序传递参数。
答案 1 :(得分:0)
它可能不是最漂亮的解决方案,但你可以包装doSomething函数并重新排序参数:
ImmutableMap.Builder