我知道还有其他问题,但我的代码似乎没有用。 你能看看我的代码并告诉我哪里错了。
var mysql = require('mysql');
var client = mysql.createClient({
user: 'jed',
password: 'jed8703',
host: 'localhost',
database: 'jedtest'
});
//var query = client.query(
// 'INSERT INTO testtable '+
// 'SET testid = ?, name = ?, value = ?',
// [1, 'test', 'test']
//);
client.query(
'SELECT * FROM testtable',
function selectCb(err, results, fields) {
if (err) {
throw err;
}
console.log(results[0].Name);
for(var i in results)
{
(function(y)
{
setInterval(function() {
console.log(results[y].Name + 'value:' + results[y].Value );
}, 5000 );
})
}
}
);
client.end();
答案 0 :(得分:6)
不要忘记调用函数:
(function(y)
{
setInterval(function() {
console.log(results[y].Name + 'value:' + results[y].Value );
}, 5000 );
})(i); // <------- Added (i);
请注意,您的延迟可能无法按预期运行。目前,您在5秒后执行所有方法。如果您希望每次通话之间有5秒的延迟,请创建一个队列。
答案 1 :(得分:2)
您没有履行y
变量,请尝试替换:
(function(y)
{
setInterval(function() {
console.log(results[y].Name + 'value:' + results[y].Value );
}, 5000 );
})
使用:
(function(y)
{
setInterval(function() {
console.log(results[y].Name + 'value:' + results[y].Value );
}, 5000 );
})(i); // <------------------