Почему сначала выполняются все микрозадачи, а потом уже макрозадачи? Почему не наоборот?

Микрозадачи позволяют завершить связанные продолжения после текущей работы до перехода к следующей задаче; это часть модели исполнения среды.

Короткий ответ

Что ответить на собеседовании

Микрозадачи позволяют завершить связанные продолжения после текущей работы до перехода к следующей задаче; это часть модели исполнения среды.

Подробный разбор

Ответ с пояснениями

Микрозадачи позволяют завершить связанные продолжения после текущей работы до перехода к следующей задаче; это часть модели исполнения среды.

После завершения текущего стека в предусмотренных точках выполняется microtask checkpoint: очередь опустошается, включая добавленные в процессе микрозадачи. Поэтому Promise-продолжения предсказуемо предшествуют следующему таймеру при таком порядке постановки. Это не означает, что микрозадачи прерывают уже исполняющийся код. Бесконечное добавление микрозадач способно лишить остальные задачи времени.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее