SobesLab логотип SobesLab

Ответ

В JavaScript-цикле событий задачи делятся на макрозадачи (events, или «очередь сообщений») и микрозадачи (jobs). Макрозадачи – это основные события, поступающие в очередь (например, обработчики DOM-событий, таймауты, сетевые ответы). Микрозадачи – задачи более высокого приоритета, которые выполняются сразу после текущего кода и перед тем, как Event Loop возьмёт следующую макрозадачу. Примеры микрозадач: колбеки промисов (then/catch/finally) и process.nextTick в Node.js. Механизм такой: после выполнения текущего скрипта или обработчика, сначала выполняются все накопившиеся микрозадачи (и возможно добавляют новые – те тоже выполняются), и только затем Event Loop переходит к следующей макрозадаче из очереди (например, следующему событию или сообщению).