Как добавить задачу в очередь микротасок с помощью queueMicrotask
Что такое queueMicrotask
queueMicrotask()
— это встроенная функция JavaScript, которая добавляет задачу в очередь микрозадач (microtask queue).
Микрозадачи выполняются сразу после завершения текущего стека вызовов и до следующей макрозадачи (например, setTimeout
, setInterval
, обработчик события).
Синтаксис
queueMicrotask(() => {
// Ваш код
});
Пример использования
console.log("Start");
setTimeout(() => {
console.log("Timeout");
}, 0);
queueMicrotask(() => {
console.log("Microtask Hack Frontend");
});
console.log("End");
Что выведется?
Start
End
Microtask Hack Frontend
Timeout
queueMicrotask
всегда выполняется раньше setTimeout
, даже если у таймера задержка 0
.
Где используется queueMicrotask
- Внутри библиотек и фреймворков для оптимизации очередей (React, Vue, Zone.js)
- Для обновления состояния после текущего вызова, но до рендера
- Для предсказуемого порядка выполнения
Совет:
Используйте queueMicrotask
, если хотите выполнить задачу асинхронно, но сразу после текущей операции — быстрее, чем setTimeout(...)
.
Вывод
queueMicrotask()
— способ добавить задачу в микротаски, которая выполнится после текущего стека, но до макрозадач.- Это быстрый и надёжный способ отложить выполнение кода, не дожидаясь следующего рендера или события.
- Используется для точного контроля порядка выполнения в асинхронных операциях.