Вопрос проверяет понимание работы event loop, очередей задач и порядка выполнения асинхронного кода.
Короткий ответ
Microtasks — это задачи с более высоким приоритетом, которые выполняются сразу после завершения текущего синхронного кода. К ним относятся Promise.then, catch, finally, queueMicrotask, MutationObserver. Macrotasks — это задачи общего планирования, такие как setTimeout, setInterval, setImmediate, обработчики событий и I/O. Event loop всегда сначала выполняет все microtasks, и только потом берёт следующую macrotask.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.