Node.js — Концепция функции обратных вызовов

Node.js — Концепция функции обратных вызовов

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

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

Пример блокирующего выполнение кода

Создайте текстовый файл с именем input.txt со следующим содержимым:

Фреймворк VUE JS: быстрый старт, первые результаты

Получите бесплатный курс и создайте веб-приложение на трендовой Frontend-технологии VUE JS с полного нуля

Узнать подробнее

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

Теперь запустите main.js:

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

Пример неблокирующего кода

Создайте текстовый файл с именем input.txt со следующим содержимым.

Фреймворк VUE JS: быстрый старт, первые результаты

Получите бесплатный курс и создайте веб-приложение на трендовой Frontend-технологии VUE JS с полного нуля

Узнать подробнее

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

Теперь запустите main.js:

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

Эти два примера иллюстрируют концепцию блокирующих и неблокирующих вызовов.

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

Во втором примере программа не ожидает завершения считывания файла, а начинает выводить «Program Ended», в то же время программа без блокировки продолжает чтение файла.

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

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

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

Фреймворк VUE JS: быстрый старт, первые результаты

Получите бесплатный курс и создайте веб-приложение на трендовой Frontend-технологии VUE JS с полного нуля

Узнать подробнее

FullStack-Мастер

FullStack-Мастер. Разработка CRM-системы на Node.js, Express, Angular 6

Научиться

Метки:

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

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

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Я не робот.

Spam Protection by WP-SpamFree