想要将变量传递给node async的map方法

bob*_*obb 1 javascript asynchronous function node.js

我正在使用节点异步,我想将变量传递给它在第二个参数中使用的方法...例如:

  async.map(submissions, addScore, function(err, submissions) {
    if (submissions) {
      return submissions;
    }
  });
Run Code Online (Sandbox Code Playgroud)

我想通过userId沿addScore,但我不知道如何做到这一点.

addScore是我的方法,我呼吁每次提交,它需要一个userId.

Rya*_*nch 5

您可以使用闭包将userId放入addScore函数范围:

var createAddScore = function(userId){
    return function(val){
        // do something with userID and val
    }
}
Run Code Online (Sandbox Code Playgroud)

然后:

async.map(submissions, createAddScore(1), function(err, submissions) {
    if (submissions) {
        return submissions;
    }
});
Run Code Online (Sandbox Code Playgroud)