2015-07-29 4 views
1

Я пытаюсь испустить некоторый JSON на сервер каждые 1 секунду.socket.emit in while loop

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 я был в состоянии успешно испускают данные сразу после выполнения.

ответ

1

Вы называете while (i > 1) { в начале, но никогда не привести его ниже 1, которая ставит его в бесконечный цикл, который не будет работать, пока из памяти

Если снять петлю while, вы все равно должны успешно достичь желаемого результата от что я предполагаю, от своих намерений

EDIT:

Кроме того, ваша БД не имеет смысла, так как вы создать новый КАЖДЫЙ второй. Переместите вызов на db создание ВНЕ петли

+0

Я хочу, чтобы цикл работал до тех пор, пока он не будет ручным. – CiscoKidx

+0

Пауза каждую секунду. – CiscoKidx

+0

Удаление цикла while устраняет проблему. – CiscoKidx