setTimeout - куча JavaScript из памяти - PullRequest
1 голос
/ 10 апреля 2019

Итак, я хочу создать программу, которая будет получать данные из веб-API каждые 15 минут и обрабатывать их.Этот процесс будет бесконечным (пока программа не закрыта).Я экспериментировал с таймаутами, но на моем компьютере быстро кончается память (24 ГБ ОЗУ), поэтому мой код, очевидно, является очень плохим способом сделать это. Обработка и сбор данных в части кода выполнены и работают нормально, что не так?Работа - это бесконечный цикл.По сути, я решил эту проблему следующим образом:

for (i = 0;; ++i) {
  setDelay(i);
}

function setDelay(i) {
  setTimeout(function(){
    //More code goes in here.
    console.log(i);
  }, 1000);
}

Конечно, должен существовать лучший способ выполнять кусок кода каждые X минут без перерыва, не затопляя оперативную память вашего ПК.Есть идеи?

1 Ответ

1 голос
/ 10 апреля 2019

Возможно, вы захотите использовать setInterval, который делает именно то, что вам нужно. Фрагмент

setInterval(function () {
  console.log('Some message...');
}, 100);

будет запускать оператор console.log каждые 100 миллисекунд, не мешая стеку и не тратя системные ресурсы.

...