2
見與async以下代碼的NodeJS:爲什麼閉包不能通過異步獲得正確的外部值?
var async = require('async');
function inc(n, cb) {
setTimeout(function() {
cb(null, n+1);
},1000);
};
var calls = [];
for(i=0;i<3;i++) {
calls.push(function(cb){
inc(i, cb);
});
}
async.parallel(calls, function(err, results) {
console.log(results);
});
它打印:
[4, 4, 4]
我不明白,爲什麼結果不[1, 2, 3]
?