Middle
138
questionbank

В чем заключается разница между обычными задачами и микрозадачами?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Обычные задачи (macrotasks) выполняются после завершения текущего макроцикла Event Loop. Микрозадачи (microtasks) выполняются после завершения текущей функции, но до старта следующего макроцикла.

К обычным задачам относятся: скрипты, таймеры (setTimeout, setInterval), операции ввода/вывода. К микрозадачам относятся: промисы (.then(), .catch(), .finally()), process.nextTick(), queueMicrotask(), MutationObserver (в браузерах).

Пример порядка выполнения:

javascript

Порядок вывода:

plaintext

Основные отличия:

ХарактеристикаОбычные задачи (Macrotasks)Микрозадачи (Microtasks)
Очередь выполненияВыполняются после всех микрозадач текущего цикла.Выполняются после текущей операции, но до следующей обычной задачи.
ИсточникиsetTimeout, setInterval, I/O, UI-рендеринг.Promise.then, process.nextTick, queueMicrotask.
ПриоритетНижеВыше