Встречается на собеседованиях • сегодня

Как setInterval работает в Event Loop

setInterval добавляет переданную функцию в очередь макрозадач через указанный интервал времени. Он работает в Event Loop следующим образом:

  1. При вызове setInterval(callback, delay) создаётся таймер в Web API.
  2. Через каждые delay миллисекунд callback помещается в очередь задач.
  3. Когда стек вызовов пуст, Event Loop берёт callback из очереди и выполняет его.

Важные нюансы:

  • Интервал не гарантирует точное время выполнения из-за занятости Event Loop
  • Если выполнение callback занимает больше времени, чем интервал, следующие вызовы будут ждать

Пример:

javascript
setInterval(() => {
  console.log('Tick'); 
}, 1000);

Для точного планирования лучше использовать рекурсивный setTimeout:

javascript
function tick() {
  console.log('Tick');
  setTimeout(tick, 1000);
}
tick();
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы