socket.emit 在 while 循环中

socket.emit in while loop

我正在尝试每 1 秒向服务器发送一些 JSON。

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 循环,根据我的假设,您应该仍能成功实现预期结果

编辑:

此外,您的数据库没有任何意义,因为您每秒钟都创建一个新数据库。将调用移至 db 创建循环之外