> Как колбэк из setTimeout попадает к выполнению? (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: Дом.рф

Стек: JavaScript

> Пример ответа

Колбэк из setTimeout попадает в очередь макрозадач (macrotask queue). Когда вызывается setTimeout, браузер запускает таймер, и по истечении указанной задержки колбэк помещается в очередь. Выполнение происходит только после того, как стек вызовов (call stack) станет пустым - то есть после завершения всех синхронных операций и обработки всех микрозадач (например, Promise). Затем цикл событий (event loop) берёт первый макрозадачу из очереди и помещает её в стек для выполнения. Если в момент срабатывания таймера стек не пуст, колбэк ждёт своей очереди. Именно поэтому setTimeout не гарантирует точную задержку - время указывает минимальное ожидание, а не точное время выполнения.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью