回调中的Access Array对象

时间:2016-11-22 19:59:21

标签: javascript node.js for-loop callback

我无法访问回调函数中的数据[i] 这是我的代码:

var data = ['HI', 'Hi2'];

for(var i=0;i<data.length;i++){
console.log(data[i]); // Just works fine
//use mysql to query database
mysql.query('some sql stuff', function(err,result){
  console.log(data); // Just works fine
  console.log(data[i]); // Doesn't work
  }
);
} 

1 个答案:

答案 0 :(得分:0)

当您的第一个SQL查询完成时,循环完成且i的值为1,因此我希望您的代码能够记录hi2两次。将查询移到for循环之外。

var data = ['HI', 'Hi2'];

for(i=0;i<data.length;i++){
  console.log(data[i]); // Just works fine
  //use mysql to query database
  logStuff(i);
} 

function logStuff(i) {
  mysql.query('some sql stuff', function(err,result){
    console.log(data); // Just works fine
    console.log(data[i]); // Doesn't work
  });
}