0

我不太了解javascript。我无法定义全局变量。

var data = 'empty';

connection.query('SELECT * FROM deneme',function(err, rows, fields){
    if (err) throw err;
    data = rows;
});

console.log(data);

通常,控制台需要返回行的数据,但它返回“空”。如何从函数内部查询行?如何定义全局变量?

4

1 回答 1

1

它不起作用的原因是因为您console.log在异步代码块之外。基本上发生的事情是这样的:

  1. data设置为empty
  2. connection发出数据库请求;
  3. console.log火灾(dataempty那个时候);
  4. 收到数据库响应;
  5. 回调触发;
  6. data设置为rows

因此,为了获得您想要的内容,只需将console.log语句放入异步块代码中:

var data = 'empty';

connection.query('SELECT * FROM deneme',function(err, rows, fields){
    if (err) throw err;
    data = rows;
    console.log(data);
});
于 2012-12-02T11:43:52.197 回答