在while循环中的socket.emit

我正试图发射一些JSON到服务器每1秒。

while (i > 1) { var checkData = setInterval (function () { var db = new sqlite3.Database('hud_db_master.sqlite3'); db.all("SELECT * FROM hud ORDER BY col_id DESC LIMIT 1;", function(err, rows) { console.log(rows); var jsonData = JSON.stringify(rows); socket.emit('clientMessage', jsonData, 'Pi-Voyager'); }); }, 1000); } 

我得到一个空白的控制台约20秒,然后出现以下错误:

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory

在搞定setInterval之前,我能够在执行后成功地发出一次数据。

你打电话while (i > 1) {在开始时,但不要把它放在1以下,这将其放入一个无限循环,将运行,直到内存不足

如果你删除了while循环,你仍然应该成功地实现我从你的意图中假定的结果

编辑:

此外,你的数据库没有意义,因为你每秒创build一个新的。 将调用移至循环的外部db创build