> Как колбэк из setTimeout попадает к выполнению? (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Дом.рф
Стек: JavaScript
> Пример ответа
Колбэк из setTimeout попадает в очередь макрозадач (macrotask queue). Когда вызывается setTimeout, браузер запускает таймер, и по истечении указанной задержки колбэк помещается в очередь. Выполнение происходит только после того, как стек вызовов (call stack) станет пустым - то есть после завершения всех синхронных операций и обработки всех микрозадач (например, Promise). Затем цикл событий (event loop) берёт первый макрозадачу из очереди и помещает её в стек для выполнения. Если в момент срабатывания таймера стек не пуст, колбэк ждёт своей очереди. Именно поэтому setTimeout не гарантирует точную задержку - время указывает минимальное ожидание, а не точное время выполнения.
> Похожие задачи по frontend
Как работает наследование в JavaScript с использованием super и методов родительского класса?
Как отслеживать изменения поля объекта без изменения исходного кода?
Зачем нужен event loop?
Каковы причины утечек памяти в JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью