为什么这个回调不能访问外部范围的正确值?

时间:2017-12-27 18:26:15

标签: javascript mysql node.js

使用node-mysql我有以下代码:

for (var i = 0; i < 10; i++) {
    connection.query('select 1', function(err, rows) {
        console.log('#' + i);
    });
}

我希望结果为#0,#1,...,#9,但实际结果是#10打印10次。很明显,它是在回调执行时打印i的值而不是回调创建。如何实现我想要的结果?

1 个答案:

答案 0 :(得分:5)

使用let:

声明我

var i =&gt;让我

for (let i = 0; i < 10; i++) {