Event Loop — это механизм, позволяющий Node.js выполнять неблокирующие I/O операции, несмотря на то, что JavaScript является однопоточным языком. Event Loop непрерывно мониторит стек вызовов, очередь колбэков и различные очереди событий (таймеры, I/O).
Основные фазы Event Loop:
- timers: Выполняет колбэки запланированные
setTimeout()
и setInterval()
.
- pending callbacks: Выполняет колбэки системных операций ввода-вывода (например, сетевых ошибок), отложенные до следующей итерации Event Loop.
- idle, prepare: Внутренние фазы Event Loop.
- poll:
- Вычисляет, как долго блокироваться и опрашивать операции ввода-вывода.
- Обрабатывает события в очереди I/O колбэков, когда их количество достигает определенного предела или исчерпывается время.
- check: Выполняет колбэки запланированные
setImmediate()
.
- close callbacks: Выполняет колбэки закрытия, например,
socket.destroy()
.
`process.n
Event Loop — это механизм, позволяющий Node.js выполнять неблокирующие I/O операции, несмотря на то, что JavaScript является однопоточным языком. Event Loop непрерывно мониторит стек вызовов, очередь колбэков и различные очереди событий (таймеры, I/O).
Основные фазы Event Loop:
- timers: Выполняет колбэки запланированные
setTimeout()
и setInterval()
.
- pending callbacks: Выполняет колбэки системных операций ввода-вывода (например, сетевых ошибок), отложенные до следующей итерации Event Loop.
- idle, prepare: Внутренние фазы Event Loop.
- poll:
- Вычисляет, как долго блокироваться и опрашивать операции ввода-вывода.
- Обрабатывает события в очереди I/O колбэков, когда их количество достигает определенного предела или исчерпывается время.
- check: Выполняет колбэки запланированные
setImmediate()
.
- close callbacks: Выполняет колбэки закрытия, например,
socket.destroy()
.
`process.n