Sobes.tech
Назад к вопросам
Junior — Middle
82

Объясните механизм работы Event Loop в Node.js и его роль в асинхронной обработке событий

Ответ от нейросети

sobes.tech AI

Event Loop в Node.js — это механизм, который позволяет обрабатывать асинхронные операции без блокировки основного потока выполнения. Node.js работает на одном потоке, но благодаря Event Loop может выполнять множество операций ввода-вывода параллельно.

Когда вызывается асинхронная функция (например, чтение файла или запрос к базе данных), она отправляется в соответствующий системный API или пул потоков, а Node.js продолжает выполнять следующий код. Когда операция завершается, результат помещается в очередь событий (event queue).

Event Loop постоянно проверяет эту очередь и, если основной поток свободен, берет из нее задачи для выполнения. Таким образом, Node.js эффективно обрабатывает множество асинхронных событий, не блокируя выполнение программы.

Пример:

const fs = require('fs');

console.log('Начало');
fs.readFile('file.txt', 'utf8', (err, data) => {
  if (err) throw err;
  console.log('Файл прочитан');
});
console.log('Конец');

Вывод будет:

Начало
Конец
Файл прочитан

Потому что чтение файла происходит асинхронно, а Event Loop обрабатывает коллбэк после завершения операции.