使用節點的MySQL我有以下代碼:爲什麼此回調沒有訪問外部範圍的正確值?
for (var i = 0; i < 10; i++) {
connection.query('select 1', function(err, rows) {
console.log('#' + i);
});
}
我預期的結果是#0,#1,...,#9,但實際的結果是#10印刷10次。很顯然它在回調執行的時刻打印i
的值,而不是創建回調。我怎樣才能實現我想要的結果?
使用節點的MySQL我有以下代碼:爲什麼此回調沒有訪問外部範圍的正確值?
for (var i = 0; i < 10; i++) {
connection.query('select 1', function(err, rows) {
console.log('#' + i);
});
}
我預期的結果是#0,#1,...,#9,但實際的結果是#10印刷10次。很顯然它在回調執行的時刻打印i
的值,而不是創建回調。我怎樣才能實現我想要的結果?
'爲(VAR I = 0; I <10; ++ⅰ)(功能(I){connection.query ('select 1',function(err,rows){console.log('#'+ i)})})(i);' –