변수를 람다 함수의 외부 범위에서 캡처 할 수 없습니다. 이 코드를 실행하면 같은 변수로 실행됩니다. 함수에 변수를 전달하고 있지만 람다에서 범위 지정이 작동하는 방식을 오해하고 있습니다. 내가 볼 수JS Lambda 범위 지정 async.parallel 호출
// Add tasks to async_tasks
for(var i = 0; i < 10; i++){
var task = function(task_callback){
// I want to capture i and pass it to the function
(function(i){
exports.defaultCarWithId(connection, i, function(err, data){
if (err) {
console.log('error in query: ' + err.stack);
fCallback("[Internal Server Error]", null);
return;
}
task_callback();
});
})(i);
};
async_tasks.push(task);
}
// execute tasks
async.parallel(async_tasks, function(err, results){
fCallback(null, user);
return;
});
여기에 람다 함수가 표시되지 않습니까? –
@SterlingArcher 익명의 기능과 혼동을 일으킨 것 같습니까? – Michael
그럴 수도 있습니다. JS의 람다 (Fat 화살표 구문)는'async.parellel (async_tasks, (err, results) => {fCallback (null, user); return;})과 같을 것입니다. ' –