【发布时间】:2016-02-13 12:43:51
【问题描述】:
我正在使用 node.js + websocket + https://github.com/felixge/node-mysql。
我这里有一个小脚本:
sql.query('SELECT hash FROM dateinfo ORDER BY date LIMIT 1',function(error,erows){
if(error) throw err;
var oldhash,oldrolls;
for (var i = 0; i < rows.length; i++) {
oldhash = rows[i].hash;
oldrolls = rows[i].rolls;
};
console.log(oldhash);
});
查询成功后,控制台打印“未定义”。但是如果我在一段时间后打印该变量(比如说 1s),它将打印“test”(因为 mysql 字段包含“test”)。
我听说这是 node.js 异步的问题...
我卡在这里了,我该怎么办?
感谢您的帮助。
【问题讨论】:
-
检查该代码的逻辑我认为你有一个额外的
} -
啊,我的错,但这不是原因
-
在循环中设置标量变量只会显示最后的
rows内容 -
rows实际上是未定义的,因为您的第二个参数称为erows -
@Cludch 我没看到!非常感谢!