Разница между макрозадачами и микрозадачами в JavaScript заключается в порядке выполнения и приоритетах. 1
Микрозадачи — это более мелкие задачи, которые обновляют состояние приложения и должны выполняться до того, как браузер продолжит выполнение других заданий, таких как повторный рендеринг пользовательского интерфейса. 3 К микрозадачам относятся обратные вызовы промисов и изменения мутации DOM. 3 Они имеют более высокий приоритет и выполняются до макрозадач. 1
Макрозадачи — это задачи, которые должны быть выполнены после окончания текущего цикла событий и перед тем, как изменения будут отрендерены на экране. 1 К ним относятся задачи, добавленные в очередь событий с помощью setTimeout, setInterval, requestAnimationFrame, а также обработка входных событий и сетевых запросов. 1 Макрозадачи выполняются после того, как завершается обработка всех микрозадач в текущем цикле событий. 1
Таким образом, в рамках итерации цикла сначала выполняются микрозадачи, затем — макрозадачи. 4