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