Event Loop позволяет Node.js выполнять неблокирующие операции ввода-вывода, несмотря на то, что JavaScript однопоточный. Он постоянно опрашивает очередь событий и выполняет колбэки.
Основные фазы Event Loop'а (в порядке исполнения):
setTimeout() и setInterval().setImmediate() колбэков.setImmediate().socket.on('close', ...).После каждой фазы цикла событий Node.js проверяет микрозадачи:
process.nextTick(), выполняются до любых других микрозадач или перехода к следующей фазе Event Loop'а..then(), .catch(), .finally()) и await выполняются после process.nextTick() и перед следующей фазой Event Loop'а.Пример работы Event Loop:
javascript
Ожидаемый вывод:
plaintext
Event Loop управляется библиотекой libuv, которая предоставляет абстракцию над низкоуровневыми операциями ввода-вывода и механизмами планирования задач в операционной системе.