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

В чем разница между setTimeout и setImmediate

setTimeout и setImmediate выполняют код асинхронно, но в разных фазах цикла событий Node.js.

  • setTimeout(callback, delay):
    • Добавляет callback в очередь таймеров после указанного delay (минимум 1мс, даже если 0).
    • Выполнится в фазе Timers цикла событий.
  • setImmediate(callback):
    • Добавляет callback в очередь Check.
    • Выполнится сразу после фазы Poll (I/O), но до Timers.

Пример:

js
setTimeout(() => console.log('timeout'), 0);
setImmediate(() => console.log('immediate'));

В этом примере порядок вывода может быть разным, так как зависит от задержки процесса. Но если оба вызываются внутри I/O цикла (например, в fs.readFile), setImmediate всегда выполнится первым.

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

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

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

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