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

Как распределяются по очереди задач setInterval, setTimeout

setTimeout и setInterval добавляют задачи в очередь макрозадач (Task Queue). Они выполняются после текущего синхронного кода и микрозадач (например, промисов).

  • setTimeout(callback, delay) – добавляет callback в очередь после указанного delay (минимально 4мс в браузерах).
  • setInterval(callback, delay) – добавляет callback в очередь периодически, начиная с момента вызова, но не гарантирует точный интервал из-за блокировки Event Loop.

Пример:

javascript
setTimeout(() => console.log('Timeout 1'), 0);
setInterval(() => console.log('Interval'), 1000);
Promise.resolve().then(() => console.log('Microtask'));
console.log('Sync code');

Вывод:

  1. Sync code
  2. Microtask (микрозадача)
  3. Timeout 1 (макрозадача)
  4. Interval (каждую секунду)

⚠️ Если Event Loop занят, интервалы могут "накапливаться" и выполняться без задержек друг за другом.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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