Node.js — Модуль Domain

Node.js — Модуль Domain

От автора: модуль Node.js Domain используется для перехвата необработанных ошибок. Необработанные ошибки могут быть перехвачена с использованием внутренней или внешней привязки. Если ошибки не обрабатываются вообще, они просто приводят к сбою приложения Node.

Внутренняя привязка — эмиттер ошибки выполняет код в методе domain домена.

Внешняя привязка — эмиттер ошибки добавляется явно в domain, используя его метод add.

Этот модуль можно импортировать, используя следующий синтаксис.

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

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

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

Класс domain модуля domain используется для обеспечения функционала перенаправления ошибок и неперехваченных исключений в активный объект Domain. Это дочерний класс EventEmitter. Чтобы сделать обработку ошибок, которые он перехватывает, выполняется прослушивание события error. Оно создается с помощью следующего синтаксиса:

Методы

domain.run(function) — Запускает предоставленную функцию в контексте domain, неявно привязав все эмиттеры событий, таймеры и запросы низкого уровня, созданные в этом контексте. Это самый простой способ использования domain.

domain.add(emitter) — Явно добавляет эмиттер в domain. Если любые обработчики событий, вызываемые эмиттером, приводят к ошибке, или, если эмиттер запускает событие error, он будет перенаправлен на событие error из domain, как в случае неявной привязки.

domain.remove(emitter) — Противоположно domain.add(emitter). Удаляет обработку domain из указанного эмиттера.

domain.bind(callback) — Возвращаемая функция будет оболочкой для предоставленной функции обратного вызова. Когда вызывается возвращаемая функция, любые возникшие ошибки будут перенаправлены на событие error из domain.

domain.intercept(callback) — Этот метод почти идентичен domain.bind (callback). Однако, кроме перехвата возникающих ошибок, он также будет перехватывать объекты Error, отправленные в качестве первого аргумента функции.

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

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

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

domain.enter() — Метод enter — это канал, используемый методами run, bind и intercept для установки активного домена. Он устанавливает domain.active и process.domain в домен и неявно добавляет домен в стек доменов, управляемый модулем domain (для получения подробной информации о стеке доменов см. Domain.exit()). Обращение к enter ограничивает начало цепочки асинхронных вызовов и операций ввода-вывода, привязанных к домену.

domain.exit() — Метод exit осуществляет выход из текущего домена, выводя его из стека доменов. Каждый раз, когда выполнение переключается на контекст другой цепи асинхронных вызовов, необходимо обеспечить выход из текущего домена. Обращение к exit ограничивает либо конец, либо прерывание цепочки асинхронных вызовов и операций ввода-вывода, привязанных к домену.

domain.dispose() — После вызова dispose, домен больше не будет использоваться обратными вызовами, привязанными к домену с помощью run, bind или intercept, а также запускается событие dispose.

Свойства

domain.members — Массив таймеров и эмитеров событий, которые были явно добавлены в домен.

Пример

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

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

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

Источник: 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