> Какие микротаски кроме Promise существуют в JavaScript? (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: VK
Стек: JavaScript
> Пример ответа
В JavaScript помимо Promise существуют и другие механизмы для работы с микротасками, хотя именно Promise является самым распространённым способом их создания. Ключевой момент: микротаски обрабатываются в конце каждого цикла событий (event loop) до начала следующей макротаски.
Основные источники микротасок:
-
Promise.then / catch / finally - самый частый случай. Любой зарезолвленный или отклонённый промис добавляет колбэк в очередь микротасок.
-
MutationObserver - колбэки этого API также выполняются как микротаски. Например, при изменении DOM (добавление/удаление узлов) зарегистрированный observer срабатывает в микротаске.
-
queueMicrotask() - специальный метод, введённый в ES2018, который явно ставит функцию в очередь микротасок. Это прямой аналог Promise.resolve().then(fn), но без создания лишнего объекта промиса.
-
process.nextTick() (в Node.js) - хотя формально это не микротаска в спецификации ECMAScript, в Node.js она имеет приоритет даже выше микротасок. В браузерах этот метод отсутствует.
Важно: setTimeout, setInterval, setImmediate (Node.js), события UI (клики, скролл) и fetch - это макротаски, а не микротаски. Они обрабатываются в отдельных циклах event loop.
> Похожие задачи по frontend
Как сделать функцию вызываемой через точку в JavaScript
Как реализовать функцию isNaN без использования Object.is в JavaScript
Откуда у примитивной строки в JavaScript появляются методы, например toUpperCase?
Как проитерироваться по объекту в JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью