Вкатываемся в NodeJS Help

Event Loop (JS)

Он делит все задачи на подтипы:

  • микрозадачи;

  • макрозадачи;

  • задачи отрисовки.

В микрозадачи попадают в основном только две категории: then у промисов, а также Intersection Observer.

Макрозадачами являются все асинхронные операции, такие как XmlHTTPRequest, setTimeout и так далее.

В задачи отрисовки попадают задачи связанные с отрисовкой и обновлением контента страницы.

Каким образом определяется, какая из задач выполняется первой?

  1. Сначала Event Loop проверяет выполнились ли все синхронные задачи

  2. Потом выполняются все задачи из микротасков

  3. После выполнения всех микротасков - очередь очищается

  4. Затем мы берем одну макрозадачу из списка и выполняем ее

  5. После выполнения мы смотрим нужно ли нам сделать перерисовку страницы

  6. Если перерисовать страницу нужно - делаем это

  7. Все снова начинается с первого пункта

Подробнее: Event Loop

Last modified: 10 July 2025