Ответ
Микрозадачи (microtasks) и макрозадачи (macrotasks) — это два типа задач в Event Loop.
-
Микрозадачи выполняются сразу после текущего синхронного кода, до рендеринга и следующих макрозадач.
Примеры:Promise.then/catch/finally,queueMicrotask,MutationObserver. -
Макрозадачи выполняются после рендеринга и микрозадач.
Примеры:setTimeout,setInterval,requestAnimationFrame, I/O-операции.
Пример:
console.log('Start');
setTimeout(() => console.log('Timeout'), 0); // макрозадача
Promise.resolve().then(() => console.log('Promise')); // микрозадача
console.log('End');
Вывод:
Start
End
Promise
Timeout