setInterval在循环nodejs中

我知道有这样的其他问题,但我的代码似乎并没有工作。 你能看看我的代码,并告诉我我错在哪里。

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(); 

不要忘记调用这个函数:

  (function(y) { setInterval(function() { console.log(results[y].Name + 'value:' + results[y].Value ); }, 5000 ); })(i); // <------- Added (i); 

请注意,您的延迟可能不像预期的那样。 目前,你正在执行5秒后的所有方法。 如果您希望在每次通话之间有5秒钟的延迟,请创build一个队列。

你没有填写variables,请尝试replace:

  (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); // <------------------