Node.js — Цикл событий

Node.js — Цикл событий

От автора: Сегодня мы поговорим о том, для чего нужны в Node js события. Node.js — однопоточное приложение, но оно может поддерживать параллелизм через концепцию событий и обратных вызовов. Каждый API-интерфейс Node.js является асинхронным и однопоточным, он использует асинхронные вызовы функций для поддержания параллелизма. Node использует шаблон проектирования Наблюдателя. Поток Node поддерживает цикл событий, и каждый раз по завершению задачи, он запускает соответствующее событие, которое сигнализирует о выполнении функции прослушивателя события.

Программирование на основе событий

В Node.js часто используются события, и это также одна из причин, по которой Node.js довольно быстр по сравнению с другими подобными технологиями. После запуска сервера Node, в нем просто инициируются собственные переменные, объявляются функции, а затем Node начинает ожидать события.

В приложении, на основе событий, обычно существует основной цикл, который прослушивает события, а затем запускает функцию обратного вызова при обнаружении одного из этих событий.

Node.js — Цикл событий

Хотя события очень похожи на обратные вызовы, разница между ними заключается в том, что функции обратного вызова вызываются, когда асинхронная функция возвращает результат, тогда как обработка событий выполняется в соответствии с шаблоном Наблюдателя. Функции, которые отслеживают события, работают как Наблюдатели. При каждом запуске события начинает выполняться его функция-прослушиватель. Node.js содержит несколько встроенных событий, доступных через модуль событий и класс EventEmitter, которые используются для привязки событий и прослушивателей событий следующим образом:

Ниже приведен синтаксис привязки обработчика события к событию:

Мы можем запустить событие программно следующим образом:

Пример

Создайте файл js с именем main.js со следующим кодом:

Теперь попробуем запустить приведенную выше программу:

В результате мы получим следующее:

Как работают приложения Node?

В приложении на Node любая асинхронная функция принимает обратный вызов в качестве последнего параметра, а функция обратного вызова принимает ошибку в качестве первого параметра. Вернемся к предыдущему примеру. Создайте текстовый файл с именем input.txt со следующим содержимым.

Создайте файл js с именем main.js, содержащим следующий код:

Здесь fs.readFile() — это асинхронная функция, которая должна считывать файл. Если во время операции чтения возникает ошибка, объект err будет содержать соответствующую ошибку, иначе считывается содержимое файла. readFile передает err и данные в функцию обратного вызова после завершения операции чтения, которая выводит содержимое.

Источник: //www.tutorialspoint.com/

Редакция: Команда webformyself.

Метки:

Похожие статьи:

Комментарии Вконтакте: