Node.js — Модуль Domain

Node.js — Модуль Domain

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

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

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

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

Класс 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, отправленные в качестве первого аргумента функции.

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:

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

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

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

Метки:

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

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