异步 - 传递变量和保留上下文

m_v*_*eek 6 javascript asynchronous node.js

如果您有以下代码:

var asyncConfig = {};
var a, b;
for(var i = 0; i < someValue; i++) {
    // do something with a
    // do something with b
    asyncConfig[i] = function(callback) {
        func(a, b, callback); // func is async
    }
}
// Include some more parallel or series functions to asyncConfig
async.auto(asyncConfig);
Run Code Online (Sandbox Code Playgroud)
  • 你怎么能传递变量的值a,并bfunc这样当async.auto(asyncConfig)后执行for循环的背景下,ab保留?

(不同上下文ab用于每个执行func.)

先感谢您 !

neo*_*neo 8

var asyncConfig = {};
var a, b;
for(var i = 0; i < someValue; i++) {
    // do something with a
    // do something with b
    (function(a,b){
      asyncConfig[i] = function(callback) {
        func(a, b, callback); // func is async
      }
    })(a,b);
}
// Include some more parallel or series functions to asyncConfig
async.auto(asyncConfig);
Run Code Online (Sandbox Code Playgroud)

  • 感谢您快速而明确的回答! (2认同)