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

Event Loop

Event Loop - бесконечный цикл в рамках NodeJS который выполняет все операции, которые в него поступают.

Event Loop делится на следующие фазы:

  1. Таймеры - Проверка и выполнение обратных вызовов (callbacks) для таймеров, время которых истекло;

  2. Pending callback - Выполнение коллбеков от системных операций;

  3. Idle, prepare - Внутренняя фаза, не имеет отношения к разработчику;

  4. Обработка Input/Output - Основная фаза для событий пользователей и системы, касающаяся ввода-вывода. Не является непрерывной из-за расчета времени и количества обработанных запросов;

  5. Check - Выполнение операций, запланированных через setImmediate;

  6. Close callback - Обработка коллбеков закрывающих событий, например, прерывание соединения с сокетами;

После каждой выполненной фазы, выполняется также process.nextTick() и other microtascQueue. Они проверяют, нет ли промисов, не добавилось ли и не сломалось ли ничего.

И непосредственно полный цикл работы выглядит так:

  • Инициализация - Выполнение синхронного кода, регистрация обратных вызовов;

  • Проход по основным фазам Event Loop - Включая проверку задач на выполнение;

  • Проверка завершения - Если нет активных задач, процесс завершается. В противном случае начинается следующий цикл Event Loop.

Last modified: 10 July 2025