ModuleClient class
Центр Интернета вещей клиента устройства, используемого для подключения устройства к Центру Интернета вещей Azure.
Чтобы создать клиент Центр Интернета вещей устройства, пользователи пакета SDK должны вызвать один из методов фабрики, fromConnectionString или fromSharedAccessSignature.
- Extends
-
InternalClient
Унаследованные свойства
capture |
Значение: логическое значение Измените параметр по умолчанию |
capture |
Значение: Узнайте, как написать пользовательский |
default |
По умолчанию для любого события можно зарегистрировать максимум Будьте внимательны при задании , Это не жесткий предел. Экземпляр
Флаг Выданное предупреждение можно проверить с |
error |
Этот символ используется для установки прослушивателя только для мониторинга Установка прослушивателя с использованием этого символа не изменяет поведение после |
Методы
close() | |
close(Callback<Disconnected>) | Закрывает транспортное подключение и уничтожает ресурсы клиента. Примечание. После вызова этого метода объект ModuleClient нельзя использовать повторно. |
from |
Создает клиент модуля Центр Интернета вещей из заданного метода проверки подлинности и использует заданный тип транспорта. |
from |
Создает клиент Центр Интернета вещей устройства из заданного строка подключения, используя заданный тип транспорта. |
from |
|
from |
Создает клиент модуля Центр Интернета вещей, используя сведения о конфигурации из среды. Если существует переменная среды с именем
|
from |
Создает клиент модуля Центр Интернета вещей из заданной подписанной URL-адреса с использованием заданного типа транспорта. |
invoke |
|
invoke |
Вызывает метод на подчиненном устройстве или в другом модуле на том же устройстве IoTEdge. Обратите внимание, что эта функция работает только в том случае, если модуль выполняется как часть устройства IoTEdge. |
invoke |
|
invoke |
|
on |
Регистрирует обратный вызов для метода с именем |
send |
|
send |
Отправляет событие в выходные данные заданного модуля. |
send |
|
send |
Отправляет массив событий в выходные данные заданного модуля. |
set |
|
set |
Передает параметры объекту |
Наследуемые методы
abandon(Message) | |
abandon(Message, Callback<Message |
|
add |
Прослушивает событие в Прослушивание события при сигналах прерывания небезопасно и может привести к утечке ресурсов, так как другая Этот API позволяет безопасно использовать Возвращает устранимый объект , чтобы было проще отменить подписку.
|
add |
Псевдоним для |
complete(Message) | |
complete(Message, Callback<Message |
|
emit<K>(string | symbol, Any |
Синхронно вызывает каждый из прослушивателей, зарегистрированных для события с именем Возвращает значение
|
event |
Возвращает массив со списком событий, для которых у излучателя есть зарегистрированные прослушиватели. Значениями в массиве являются строки или
|
get |
Возвращает копию массива прослушивателей для события с именем Для Для
|
get |
Возвращает текущее максимальное значение прослушивателя для |
get |
Возвращает заданное в настоящее время максимальное количество прослушивателей. Для Для
|
get |
|
get |
|
listener |
Метод класса, возвращающий количество прослушивателей для заданного
|
listener |
Возвращает число прослушивателей, прослушивающих событие с именем |
listeners<K>(string | symbol) | Возвращает копию массива прослушивателей для события с именем
|
off<K>(string | symbol, (args: any[]) => void) | Псевдоним для |
on(Event |
Возвращает объект , Можно
|
on<K>(string | symbol, (args: any[]) => void) | Добавляет функцию в
Возвращает ссылку на По умолчанию прослушиватели событий вызываются в порядке их добавления. Метод
|
once(Event |
Создает объект , Этот метод является намеренно универсальным и работает с интерфейсом EventTarget веб-платформы, который не имеет специальной
Специальная обработка события используется только в
Можно
|
once(_DOMEvent |
|
once<K>(string | symbol, (args: any[]) => void) | Добавляет одноразовую
Возвращает ссылку на По умолчанию прослушиватели событий вызываются в порядке их добавления. Метод
|
open() | |
open(Callback<Connected>) | |
prepend |
Добавляет функцию в
Возвращает ссылку на |
prepend |
Добавляет одноразовую
Возвращает ссылку на |
raw |
Возвращает копию массива прослушивателей для события с именем
|
reject(Message) | |
reject(Message, Callback<Message |
|
remove |
Удаляет все прослушиватели или прослушиватели указанного Не рекомендуется удалять прослушиватели, добавленные в другое место кода, особенно если Возвращает ссылку на |
remove |
Удаляет указанный
После создания события все прослушиватели, подключенные к нему во время отправки, вызываются по порядку. Это означает, что любые
Так как прослушиватели управляются с помощью внутреннего массива, вызов этого метода приведет к изменению индексов позиции любого прослушивателя, зарегистрированного после удаления прослушивателя. Это не повлияет на порядок, в котором вызываются прослушиватели, но это означает, что все копии массива прослушивателей, возвращаемые методом Если одна функция была добавлена в качестве обработчика несколько раз для одного события (как в примере ниже),
Возвращает ссылку на |
send |
|
send |
|
send |
|
send |
|
set |
По умолчанию Возвращает ссылку на |
set |
|
set |
Задает политику повторных попыток, используемую клиентом для всех операций. Значение по умолчанию — ExponentialBackoffWithJitter. |
set |
|
set |
|
update |
|
[capture |
Сведения об унаследованном свойстве
captureRejections
Значение: логическое значение
Измените параметр по умолчанию captureRejections
для всех новых EventEmitter
объектов.
static captureRejections: boolean
Значение свойства
boolean
Наследуется от InternalClient.captureRejections
captureRejectionSymbol
Значение: Symbol.for('nodejs.rejection')
Узнайте, как написать пользовательский rejection handler
объект .
static captureRejectionSymbol: typeof captureRejectionSymbol
Значение свойства
typeof captureRejectionSymbol
Наследуется от InternalClient.captureRejectionSymbol
defaultMaxListeners
По умолчанию для любого события можно зарегистрировать максимум 10
прослушивателей. Это ограничение можно изменить для отдельных EventEmitter
экземпляров с помощью emitter.setMaxListeners(n)
метода . Чтобы изменить значение по умолчанию для всехEventEmitter
экземпляров, events.defaultMaxListeners
можно использовать свойство . Если это значение не является положительным числом RangeError
, возникает исключение .
Будьте внимательны при задании , events.defaultMaxListeners
так как изменение влияет на всеEventEmitter
экземпляры, включая экземпляры, созданные до внесения изменения. Однако вызов emitter.setMaxListeners(n)
по-прежнему имеет приоритет над events.defaultMaxListeners
.
Это не жесткий предел. Экземпляр EventEmitter
позволит добавить больше прослушивателей, но выдаст в stderr предупреждение трассировки, указывающее, что обнаружена "возможная утечка памяти EventEmitter". Для любого отдельногоEventEmitter
emitter.getMaxListeners()
метода и emitter.setMaxListeners()
можно использовать, чтобы временно избежать этого предупреждения:
import { EventEmitter } from 'node:events';
const emitter = new EventEmitter();
emitter.setMaxListeners(emitter.getMaxListeners() + 1);
emitter.once('event', () => {
// do stuff
emitter.setMaxListeners(Math.max(emitter.getMaxListeners() - 1, 0));
});
Флаг --trace-warnings
командной строки можно использовать для отображения трассировки стека для таких предупреждений.
Выданное предупреждение можно проверить с process.on('warning')
помощью и будет иметь дополнительные emitter
свойства , type
и count
, ссылающиеся на экземпляр источника события, имя события и количество присоединенных прослушивателей соответственно.
Его name
свойство имеет значение 'MaxListenersExceededWarning'
.
static defaultMaxListeners: number
Значение свойства
number
Наследуется от InternalClient.defaultMaxListeners
errorMonitor
Этот символ используется для установки прослушивателя только для мониторинга 'error'
событий. Прослушиватели, установленные с помощью этого символа, вызываются перед вызовом обычных'error'
прослушивателей.
Установка прослушивателя с использованием этого символа не изменяет поведение после'error'
создания события. Таким образом, процесс по-прежнему будет завершатся сбоем, если не установлен обычный 'error'
прослушиватель.
static errorMonitor: typeof errorMonitor
Значение свойства
typeof errorMonitor
Наследуется от InternalClient.errorMonitor
Сведения о методе
close()
function close(): Promise<Disconnected>
Возвращаемое значение
Promise<Disconnected>
close(Callback<Disconnected>)
Закрывает транспортное подключение и уничтожает ресурсы клиента.
Примечание. После вызова этого метода объект ModuleClient нельзя использовать повторно.
function close(closeCallback?: Callback<Disconnected>)
Параметры
- closeCallback
-
Callback<Disconnected>
Необязательная функция для вызова после отключения транспорта и закрытия клиента.
fromAuthenticationProvider(AuthenticationProvider, any)
Создает клиент модуля Центр Интернета вещей из заданного метода проверки подлинности и использует заданный тип транспорта.
static function fromAuthenticationProvider(authenticationProvider: AuthenticationProvider, transportCtor: any): ModuleClient
Параметры
- authenticationProvider
-
AuthenticationProvider
Объект, используемый для получения параметров проверки подлинности для Центра Интернета вещей.
- transportCtor
-
any
Транспортный протокол, используемый для подключения к Центру Интернета вещей.
Возвращаемое значение
fromConnectionString(string, any)
Создает клиент Центр Интернета вещей устройства из заданного строка подключения, используя заданный тип транспорта.
static function fromConnectionString(connStr: string, transportCtor: any): ModuleClient
Параметры
- connStr
-
string
Строка подключения, который инкапсулирует разрешения на подключение к устройству в Центре Интернета вещей.
- transportCtor
-
any
Конструктор транспорта.
Возвращаемое значение
fromEnvironment(any)
static function fromEnvironment(transportCtor: any): Promise<ModuleClient>
Параметры
- transportCtor
-
any
Возвращаемое значение
Promise<ModuleClient>
fromEnvironment(any, Callback<ModuleClient>)
Создает клиент модуля Центр Интернета вещей, используя сведения о конфигурации из среды.
Если существует переменная среды с именем EdgeHubConnectionString
или IotHubConnectionString
, то используется это значение и поведение идентично вызову fromConnectionString
, передаваемого в . Если эти переменные среды не существуют, необходимо определить следующие переменные:
- IOTEDGE_WORKLOADURI URI for iotedged's workload API
- IOTEDGE_DEVICEID Device identifier
- IOTEDGE_MODULEID Module identifier
- IOTEDGE_MODULEGENERATIONID Module generation identifier
- IOTEDGE_IOTHUBHOSTNAME IoT Hub host name
- IOTEDGE_AUTHSCHEME Authentication scheme to use; must be "sasToken"
static function fromEnvironment(transportCtor: any, callback?: Callback<ModuleClient>)
Параметры
- transportCtor
-
any
Транспортный протокол, используемый для подключения к Центру Интернета вещей.
- callback
-
Callback<ModuleClient>
Необязательный обратный вызов для вызова при создании ModuleClient или при возникновении ошибки при создании клиента.
fromSharedAccessSignature(string, any)
Создает клиент модуля Центр Интернета вещей из заданной подписанной URL-адреса с использованием заданного типа транспорта.
static function fromSharedAccessSignature(sharedAccessSignature: string, transportCtor: any): ModuleClient
Параметры
- sharedAccessSignature
-
string
Подписанный URL-адрес, который инкапсулирует разрешения на подключение к устройству в Центре Интернета вещей.
- transportCtor
-
any
Возвращаемое значение
invokeMethod(string, MethodParams)
function invokeMethod(deviceId: string, methodParams: MethodParams): Promise<MethodResult>
Параметры
- deviceId
-
string
- methodParams
-
MethodParams
Возвращаемое значение
Promise<MethodResult>
invokeMethod(string, MethodParams, Callback<MethodResult>)
Вызывает метод на подчиненном устройстве или в другом модуле на том же устройстве IoTEdge. Обратите внимание, что эта функция работает только в том случае, если модуль выполняется как часть устройства IoTEdge.
function invokeMethod(deviceId: string, methodParams: MethodParams, callback?: Callback<MethodResult>)
Параметры
- deviceId
-
string
идентификатор целевого устройства
- methodParams
-
MethodParams
параметры вызова прямого метода
- callback
-
Callback<MethodResult>
необязательный обратный вызов, который будет вызываться либо с объектом Error, либо результатом вызова метода.
invokeMethod(string, string, MethodParams)
function invokeMethod(deviceId: string, moduleId: string, methodParams: MethodParams): Promise<MethodResult>
Параметры
- deviceId
-
string
- moduleId
-
string
- methodParams
-
MethodParams
Возвращаемое значение
Promise<MethodResult>
invokeMethod(string, string, MethodParams, Callback<MethodResult>)
function invokeMethod(deviceId: string, moduleId: string, methodParams: MethodParams, callback: Callback<MethodResult>)
Параметры
- deviceId
-
string
- moduleId
-
string
- methodParams
-
MethodParams
- callback
-
Callback<MethodResult>
onMethod(string, DoubleValueCallback<DeviceMethodRequest, DeviceMethodResponse>)
Регистрирует обратный вызов для метода с именем methodName
.
function onMethod(methodName: string, callback: DoubleValueCallback<DeviceMethodRequest, DeviceMethodResponse>)
Параметры
- methodName
-
string
Имя метода, который будет обрабатываться обратным вызовом
- callback
-
DoubleValueCallback<DeviceMethodRequest, DeviceMethodResponse>
Функция, которая должна вызываться при получении запроса метода для вызываемого methodName
метода.
sendOutputEvent(string, Message)
function sendOutputEvent(outputName: string, message: Message): Promise<MessageEnqueued>
Параметры
- outputName
-
string
- message
- Message
Возвращаемое значение
Promise<MessageEnqueued>
sendOutputEvent(string, Message, Callback<MessageEnqueued>)
Отправляет событие в выходные данные заданного модуля.
function sendOutputEvent(outputName: string, message: Message, callback?: Callback<MessageEnqueued>)
Параметры
- outputName
-
string
Имя выходных данных для отправки события
- message
- Message
Сообщение для отправки в заданные выходные данные
- callback
-
Callback<MessageEnqueued>
Необязательная функция, вызываемая при постановке операции в очередь.
sendOutputEventBatch(string, Message[])
function sendOutputEventBatch(outputName: string, messages: Message[]): Promise<MessageEnqueued>
Параметры
- outputName
-
string
- messages
-
Message[]
Возвращаемое значение
Promise<MessageEnqueued>
sendOutputEventBatch(string, Message[], Callback<MessageEnqueued>)
Отправляет массив событий в выходные данные заданного модуля.
function sendOutputEventBatch(outputName: string, messages: Message[], callback?: Callback<MessageEnqueued>)
Параметры
- outputName
-
string
Имя выходных данных для отправки событий
- messages
-
Message[]
- callback
-
Callback<MessageEnqueued>
Функция, вызываемая при постановке операций в очередь.
setOptions(DeviceClientOptions)
function setOptions(options: DeviceClientOptions): Promise<TransportConfigured>
Параметры
- options
- DeviceClientOptions
Возвращаемое значение
Promise<TransportConfigured>
setOptions(DeviceClientOptions, Callback<TransportConfigured>)
Передает параметры объекту ModuleClient
, который можно использовать для настройки транспорта.
function setOptions(options: DeviceClientOptions, done?: Callback<TransportConfigured>)
Параметры
- options
- DeviceClientOptions
Объект DeviceClientOptions .
- done
-
Callback<TransportConfigured>
Необязательный обратный вызов для вызова после установки параметров.
Сведения о наследуемом методе
abandon(Message)
function abandon(message: Message): Promise<MessageAbandoned>
Параметры
- message
- Message
Возвращаемое значение
Promise<MessageAbandoned>
Наследуется от InternalClient.abandon
abandon(Message, Callback<MessageAbandoned>)
function abandon(message: Message, abandonCallback: Callback<MessageAbandoned>)
Параметры
- message
- Message
- abandonCallback
-
Callback<MessageAbandoned>
Наследуется от InternalClient.abandon
addAbortListener(AbortSignal, (event: Event) => void)
Прослушивает событие в abort
предоставленном signal
объекте .
Прослушивание события при сигналах прерывания небезопасно и может привести к утечке ресурсов, так как другая abort
третья сторона с сигналом может вызвать e.stopImmediatePropagation()
. К сожалению, Node.js не может изменить это, так как это нарушает веб-стандарт. Кроме того, исходный API позволяет легко забыть об удалении прослушивателей.
Этот API позволяет безопасно использовать AbortSignal
в Node.js API, решая эти две проблемы, прослушивая событие таким образом, чтобы stopImmediatePropagation
не препятствовать запуску прослушивателя.
Возвращает устранимый объект , чтобы было проще отменить подписку.
import { addAbortListener } from 'node:events';
function example(signal) {
let disposable;
try {
signal.addEventListener('abort', (e) => e.stopImmediatePropagation());
disposable = addAbortListener(signal, (e) => {
// Do something when signal is aborted.
});
} finally {
disposable?.[Symbol.dispose]();
}
}
static function addAbortListener(signal: AbortSignal, resource: (event: Event) => void): Disposable
Параметры
- signal
-
AbortSignal
- resource
-
(event: Event) => void
Возвращаемое значение
Disposable
Удаляемый, удаляющий abort
прослушиватель.
Наследуется от InternalClient.addAbortListener
addListener<K>(string | symbol, (args: any[]) => void)
Псевдоним для emitter.on(eventName, listener)
.
function addListener<K>(eventName: string | symbol, listener: (args: any[]) => void): ModuleClient
Параметры
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Возвращаемое значение
Наследуется от InternalClient.addListener
complete(Message)
function complete(message: Message): Promise<MessageCompleted>
Параметры
- message
- Message
Возвращаемое значение
Promise<MessageCompleted>
Наследуется от InternalClient.complete
complete(Message, Callback<MessageCompleted>)
function complete(message: Message, completeCallback: Callback<MessageCompleted>)
Параметры
- message
- Message
- completeCallback
-
Callback<MessageCompleted>
Наследуется от InternalClient.complete
emit<K>(string | symbol, AnyRest)
Синхронно вызывает каждый из прослушивателей, зарегистрированных для события с именемeventName
, в том порядке, в который они зарегистрированы, передавая предоставленные аргументы каждому из них.
Возвращает значение true
, если событие имело прослушиватели, false
в противном случае .
import { EventEmitter } from 'node:events';
const myEmitter = new EventEmitter();
// First listener
myEmitter.on('event', function firstListener() {
console.log('Helloooo! first listener');
});
// Second listener
myEmitter.on('event', function secondListener(arg1, arg2) {
console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
});
// Third listener
myEmitter.on('event', function thirdListener(...args) {
const parameters = args.join(', ');
console.log(`event with parameters ${parameters} in third listener`);
});
console.log(myEmitter.listeners('event'));
myEmitter.emit('event', 1, 2, 3, 4, 5);
// Prints:
// [
// [Function: firstListener],
// [Function: secondListener],
// [Function: thirdListener]
// ]
// Helloooo! first listener
// event with parameters 1, 2 in second listener
// event with parameters 1, 2, 3, 4, 5 in third listener
function emit<K>(eventName: string | symbol, args: AnyRest): boolean
Параметры
- eventName
-
string | symbol
- args
-
AnyRest
Возвращаемое значение
boolean
Наследуется от InternalClient.emit
eventNames()
Возвращает массив со списком событий, для которых у излучателя есть зарегистрированные прослушиватели. Значениями в массиве являются строки или Symbol
s.
import { EventEmitter } from 'node:events';
const myEE = new EventEmitter();
myEE.on('foo', () => {});
myEE.on('bar', () => {});
const sym = Symbol('symbol');
myEE.on(sym, () => {});
console.log(myEE.eventNames());
// Prints: [ 'foo', 'bar', Symbol(symbol) ]
function eventNames(): (string | symbol)[]
Возвращаемое значение
(string | symbol)[]
Наследуется от InternalClient.eventNames
getEventListeners(EventEmitter<DefaultEventMap> | _DOMEventTarget, string | symbol)
Возвращает копию массива прослушивателей для события с именем eventName
.
Для EventEmitter
s это ведет себя точно так же, как вызов .listeners
на излучателя.
Для EventTarget
s это единственный способ получить прослушиватели событий для целевого объекта события. Это полезно для отладки и диагностики.
import { getEventListeners, EventEmitter } from 'node:events';
{
const ee = new EventEmitter();
const listener = () => console.log('Events are fun');
ee.on('foo', listener);
console.log(getEventListeners(ee, 'foo')); // [ [Function: listener] ]
}
{
const et = new EventTarget();
const listener = () => console.log('Events are fun');
et.addEventListener('foo', listener);
console.log(getEventListeners(et, 'foo')); // [ [Function: listener] ]
}
static function getEventListeners(emitter: EventEmitter<DefaultEventMap> | _DOMEventTarget, name: string | symbol): Function[]
Параметры
- emitter
-
EventEmitter<DefaultEventMap> | _DOMEventTarget
- name
-
string | symbol
Возвращаемое значение
Function[]
Наследуется от InternalClient.getEventListeners
getMaxListeners()
Возвращает текущее максимальное значение прослушивателя для EventEmitter
, для которого задано emitter.setMaxListeners(n)
значение defaultMaxListeners или по умолчанию.
function getMaxListeners(): number
Возвращаемое значение
number
Наследуется от InternalClient.getMaxListeners
getMaxListeners(EventEmitter<DefaultEventMap> | _DOMEventTarget)
Возвращает заданное в настоящее время максимальное количество прослушивателей.
Для EventEmitter
s это ведет себя точно так же, как вызов .getMaxListeners
на излучателя.
Для EventTarget
s это единственный способ получить максимальное число прослушивателей событий для целевого объекта события. Если количество обработчиков событий в одном Объекте EventTarget превышает максимальное значение, EventTarget выведет предупреждение.
import { getMaxListeners, setMaxListeners, EventEmitter } from 'node:events';
{
const ee = new EventEmitter();
console.log(getMaxListeners(ee)); // 10
setMaxListeners(11, ee);
console.log(getMaxListeners(ee)); // 11
}
{
const et = new EventTarget();
console.log(getMaxListeners(et)); // 10
setMaxListeners(11, et);
console.log(getMaxListeners(et)); // 11
}
static function getMaxListeners(emitter: EventEmitter<DefaultEventMap> | _DOMEventTarget): number
Параметры
- emitter
-
EventEmitter<DefaultEventMap> | _DOMEventTarget
Возвращаемое значение
number
Наследуется от InternalClient.getMaxListeners
getTwin()
function getTwin(): Promise<Twin>
Возвращаемое значение
Promise<Twin>
Наследуется от InternalClient.getTwin
getTwin(Callback<Twin>)
function getTwin(done: Callback<Twin>)
Параметры
- done
-
Callback<Twin>
Наследуется от InternalClient.getTwin
listenerCount(EventEmitter<DefaultEventMap>, string | symbol)
Предупреждение
Теперь этот API является нерекомендуемым.
Since v3.2.0 - Use listenerCount
instead.
Метод класса, возвращающий количество прослушивателей для заданного eventName
объекта , зарегистрированного в заданном emitter
объекте .
import { EventEmitter, listenerCount } from 'node:events';
const myEmitter = new EventEmitter();
myEmitter.on('event', () => {});
myEmitter.on('event', () => {});
console.log(listenerCount(myEmitter, 'event'));
// Prints: 2
static function listenerCount(emitter: EventEmitter<DefaultEventMap>, eventName: string | symbol): number
Параметры
- emitter
-
EventEmitter<DefaultEventMap>
Излучатель для запроса
- eventName
-
string | symbol
Имя события
Возвращаемое значение
number
Наследуется от InternalClient.listenerCount
listenerCount<K>(string | symbol, Function)
Возвращает число прослушивателей, прослушивающих событие с именем eventName
.
Если listener
указан параметр , он вернет, сколько раз прослушиватель находится в списке прослушивателей события.
function listenerCount<K>(eventName: string | symbol, listener?: Function): number
Параметры
- eventName
-
string | symbol
Имя прослушиваемого события
- listener
-
Function
Функция обработчика событий
Возвращаемое значение
number
Наследуется от InternalClient.listenerCount
listeners<K>(string | symbol)
Возвращает копию массива прослушивателей для события с именем eventName
.
server.on('connection', (stream) => {
console.log('someone connected!');
});
console.log(util.inspect(server.listeners('connection')));
// Prints: [ [Function] ]
function listeners<K>(eventName: string | symbol): Function[]
Параметры
- eventName
-
string | symbol
Возвращаемое значение
Function[]
Наследуется от InternalClient.listeners
off<K>(string | symbol, (args: any[]) => void)
Псевдоним для emitter.removeListener()
.
function off<K>(eventName: string | symbol, listener: (args: any[]) => void): ModuleClient
Параметры
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Возвращаемое значение
Наследуется от InternalClient.off
on(EventEmitter<DefaultEventMap>, string, StaticEventEmitterOptions)
import { on, EventEmitter } from 'node:events';
import process from 'node:process';
const ee = new EventEmitter();
// Emit later on
process.nextTick(() => {
ee.emit('foo', 'bar');
ee.emit('foo', 42);
});
for await (const event of on(ee, 'foo')) {
// The execution of this inner block is synchronous and it
// processes one event at a time (even with await). Do not use
// if concurrent execution is required.
console.log(event); // prints ['bar'] [42]
}
// Unreachable here
Возвращает объект , AsyncIterator
который выполняет итерацию eventName
событий. Он вызывает исключение , EventEmitter
если выдает 'error'
. При выходе из цикла удаляются все прослушиватели. Объект , value
возвращаемый каждой итерацией, представляет собой массив, состоящий из созданных аргументов события.
Можно AbortSignal
использовать для отмены ожидания событий:
import { on, EventEmitter } from 'node:events';
import process from 'node:process';
const ac = new AbortController();
(async () => {
const ee = new EventEmitter();
// Emit later on
process.nextTick(() => {
ee.emit('foo', 'bar');
ee.emit('foo', 42);
});
for await (const event of on(ee, 'foo', { signal: ac.signal })) {
// The execution of this inner block is synchronous and it
// processes one event at a time (even with await). Do not use
// if concurrent execution is required.
console.log(event); // prints ['bar'] [42]
}
// Unreachable here
})();
process.nextTick(() => ac.abort());
static function on(emitter: EventEmitter<DefaultEventMap>, eventName: string, options?: StaticEventEmitterOptions): AsyncIterableIterator<any>
Параметры
- emitter
-
EventEmitter<DefaultEventMap>
- eventName
-
string
Имя прослушиваемого события
- options
-
StaticEventEmitterOptions
Возвращаемое значение
AsyncIterableIterator<any>
, который выполняет итерацию eventName
событий, создаваемых emitter
Наследуется от InternalClient.on
on<K>(string | symbol, (args: any[]) => void)
Добавляет функцию в listener
конец массива прослушивателей для события с именем eventName
. Проверки, чтобы проверить, был ли listener
уже добавлен , не выполняется. Несколько вызовов, которые передают одно и то же сочетание eventName
и listener
, приведут к добавлению listener
и вызову несколько раз.
server.on('connection', (stream) => {
console.log('someone connected!');
});
Возвращает ссылку на EventEmitter
, чтобы вызовы можно было связать в цепочку.
По умолчанию прослушиватели событий вызываются в порядке их добавления. Методemitter.prependListener()
можно использовать в качестве альтернативы для добавления прослушивателя событий в начало массива прослушивателей.
import { EventEmitter } from 'node:events';
const myEE = new EventEmitter();
myEE.on('foo', () => console.log('a'));
myEE.prependListener('foo', () => console.log('b'));
myEE.emit('foo');
// Prints:
// b
// a
function on<K>(eventName: string | symbol, listener: (args: any[]) => void): ModuleClient
Параметры
- eventName
-
string | symbol
Имя события.
- listener
-
(args: any[]) => void
Функция обратного вызова
Возвращаемое значение
Наследуется от InternalClient.on
once(EventEmitter<DefaultEventMap>, string | symbol, StaticEventEmitterOptions)
Создает объект , Promise
который выполняется, когда EventEmitter
создает заданное событие, или отклоняется, если EventEmitter
выдает 'error'
во время ожидания.
Будет Promise
разрешаться с массивом всех аргументов, выдаваемых данному событию.
Этот метод является намеренно универсальным и работает с интерфейсом EventTarget веб-платформы, который не имеет специальной'error'
семантики событий и не прослушивает 'error'
событие.
import { once, EventEmitter } from 'node:events';
import process from 'node:process';
const ee = new EventEmitter();
process.nextTick(() => {
ee.emit('myevent', 42);
});
const [value] = await once(ee, 'myevent');
console.log(value);
const err = new Error('kaboom');
process.nextTick(() => {
ee.emit('error', err);
});
try {
await once(ee, 'myevent');
} catch (err) {
console.error('error happened', err);
}
Специальная обработка события используется только в 'error'
том случае, если events.once()
используется для ожидания другого события. Если events.once()
используется для ожидания самого события 'error'
, то оно обрабатывается как любое другое событие без специальной обработки:
import { EventEmitter, once } from 'node:events';
const ee = new EventEmitter();
once(ee, 'error')
.then(([err]) => console.log('ok', err.message))
.catch((err) => console.error('error', err.message));
ee.emit('error', new Error('boom'));
// Prints: ok boom
Можно AbortSignal
использовать для отмены ожидания события:
import { EventEmitter, once } from 'node:events';
const ee = new EventEmitter();
const ac = new AbortController();
async function foo(emitter, event, signal) {
try {
await once(emitter, event, { signal });
console.log('event emitted!');
} catch (error) {
if (error.name === 'AbortError') {
console.error('Waiting for the event was canceled!');
} else {
console.error('There was an error', error.message);
}
}
}
foo(ee, 'foo', ac.signal);
ac.abort(); // Abort waiting for the event
ee.emit('foo'); // Prints: Waiting for the event was canceled!
static function once(emitter: EventEmitter<DefaultEventMap>, eventName: string | symbol, options?: StaticEventEmitterOptions): Promise<any[]>
Параметры
- emitter
-
EventEmitter<DefaultEventMap>
- eventName
-
string | symbol
- options
-
StaticEventEmitterOptions
Возвращаемое значение
Promise<any[]>
Наследуется от InternalClient.once
once(_DOMEventTarget, string, StaticEventEmitterOptions)
static function once(emitter: _DOMEventTarget, eventName: string, options?: StaticEventEmitterOptions): Promise<any[]>
Параметры
- emitter
-
_DOMEventTarget
- eventName
-
string
- options
-
StaticEventEmitterOptions
Возвращаемое значение
Promise<any[]>
Наследуется от InternalClient.once
once<K>(string | symbol, (args: any[]) => void)
Добавляет одноразовуюlistener
функцию для события с именем eventName
. При следующем eventName
запуске этот прослушиватель удаляется, а затем вызывается.
server.once('connection', (stream) => {
console.log('Ah, we have our first user!');
});
Возвращает ссылку на EventEmitter
, чтобы вызовы можно было связать в цепочку.
По умолчанию прослушиватели событий вызываются в порядке их добавления. Методemitter.prependOnceListener()
можно использовать в качестве альтернативы для добавления прослушивателя событий в начало массива прослушивателей.
import { EventEmitter } from 'node:events';
const myEE = new EventEmitter();
myEE.once('foo', () => console.log('a'));
myEE.prependOnceListener('foo', () => console.log('b'));
myEE.emit('foo');
// Prints:
// b
// a
function once<K>(eventName: string | symbol, listener: (args: any[]) => void): ModuleClient
Параметры
- eventName
-
string | symbol
Имя события.
- listener
-
(args: any[]) => void
Функция обратного вызова
Возвращаемое значение
Наследуется от InternalClient.once
open()
function open(): Promise<Connected>
Возвращаемое значение
Promise<Connected>
Наследуется от InternalClient.open
open(Callback<Connected>)
function open(openCallback: Callback<Connected>)
Параметры
- openCallback
-
Callback<Connected>
Наследуется от InternalClient.open
prependListener<K>(string | symbol, (args: any[]) => void)
Добавляет функцию в listener
начало массива прослушивателей для события с именем eventName
. Проверки, чтобы проверить, был ли listener
уже добавлен , не выполняется. Несколько вызовов, которые передают одно и то же сочетание eventName
и listener
, приведут к добавлению listener
и вызову несколько раз.
server.prependListener('connection', (stream) => {
console.log('someone connected!');
});
Возвращает ссылку на EventEmitter
, чтобы вызовы можно было связать в цепочку.
function prependListener<K>(eventName: string | symbol, listener: (args: any[]) => void): ModuleClient
Параметры
- eventName
-
string | symbol
Имя события.
- listener
-
(args: any[]) => void
Функция обратного вызова
Возвращаемое значение
Наследуется от InternalClient.prependListener
prependOnceListener<K>(string | symbol, (args: any[]) => void)
Добавляет одноразовуюlistener
функцию для события с именем eventName
в начало массива прослушивателей. При следующем eventName
запуске этот прослушиватель удаляется, а затем вызывается.
server.prependOnceListener('connection', (stream) => {
console.log('Ah, we have our first user!');
});
Возвращает ссылку на EventEmitter
, чтобы вызовы можно было связать в цепочку.
function prependOnceListener<K>(eventName: string | symbol, listener: (args: any[]) => void): ModuleClient
Параметры
- eventName
-
string | symbol
Имя события.
- listener
-
(args: any[]) => void
Функция обратного вызова
Возвращаемое значение
Наследуется от InternalClient.prependOnceListener
rawListeners<K>(string | symbol)
Возвращает копию массива прослушивателей для события с именем eventName
, включая все оболочки (например, созданные )..once()
import { EventEmitter } from 'node:events';
const emitter = new EventEmitter();
emitter.once('log', () => console.log('log once'));
// Returns a new Array with a function `onceWrapper` which has a property
// `listener` which contains the original listener bound above
const listeners = emitter.rawListeners('log');
const logFnWrapper = listeners[0];
// Logs "log once" to the console and does not unbind the `once` event
logFnWrapper.listener();
// Logs "log once" to the console and removes the listener
logFnWrapper();
emitter.on('log', () => console.log('log persistently'));
// Will return a new Array with a single function bound by `.on()` above
const newListeners = emitter.rawListeners('log');
// Logs "log persistently" twice
newListeners[0]();
emitter.emit('log');
function rawListeners<K>(eventName: string | symbol): Function[]
Параметры
- eventName
-
string | symbol
Возвращаемое значение
Function[]
Наследуется от InternalClient.rawListeners
reject(Message)
function reject(message: Message): Promise<MessageRejected>
Параметры
- message
- Message
Возвращаемое значение
Promise<MessageRejected>
Наследуется от InternalClient.reject
reject(Message, Callback<MessageRejected>)
function reject(message: Message, rejectCallback: Callback<MessageRejected>)
Параметры
- message
- Message
- rejectCallback
-
Callback<MessageRejected>
Наследуется от InternalClient.reject
removeAllListeners(string | symbol)
Удаляет все прослушиватели или прослушиватели указанного eventName
объекта .
Не рекомендуется удалять прослушиватели, добавленные в другое место кода, особенно если EventEmitter
экземпляр был создан каким-либо другим компонентом или модулем (например, сокетами или файловым потоком).
Возвращает ссылку на EventEmitter
, чтобы вызовы можно было связать в цепочку.
function removeAllListeners(eventName?: string | symbol): ModuleClient
Параметры
- eventName
-
string | symbol
Возвращаемое значение
Наследуется от InternalClient.removeAllListeners
removeListener<K>(string | symbol, (args: any[]) => void)
Удаляет указанный listener
объект из массива прослушивателя для события с именемeventName
.
const callback = (stream) => {
console.log('someone connected!');
};
server.on('connection', callback);
// ...
server.removeListener('connection', callback);
removeListener()
удалит не более одного экземпляра прослушивателя из массива прослушивателя. Если какой-либо отдельный прослушиватель был добавлен несколько раз в массив прослушивателя для указанного eventName
объекта , то removeListener()
его необходимо вызывать несколько раз, чтобы удалить каждый экземпляр.
После создания события все прослушиватели, подключенные к нему во время отправки, вызываются по порядку. Это означает, что любыеremoveListener()
вызовы или removeAllListeners()
после отправки и до завершения выполнения последнего прослушивателя не удаляют их изemit()
текущего процесса. Последующие события ведут себя должным образом.
import { EventEmitter } from 'node:events';
class MyEmitter extends EventEmitter {}
const myEmitter = new MyEmitter();
const callbackA = () => {
console.log('A');
myEmitter.removeListener('event', callbackB);
};
const callbackB = () => {
console.log('B');
};
myEmitter.on('event', callbackA);
myEmitter.on('event', callbackB);
// callbackA removes listener callbackB but it will still be called.
// Internal listener array at time of emit [callbackA, callbackB]
myEmitter.emit('event');
// Prints:
// A
// B
// callbackB is now removed.
// Internal listener array [callbackA]
myEmitter.emit('event');
// Prints:
// A
Так как прослушиватели управляются с помощью внутреннего массива, вызов этого метода приведет к изменению индексов позиции любого прослушивателя, зарегистрированного после удаления прослушивателя. Это не повлияет на порядок, в котором вызываются прослушиватели, но это означает, что все копии массива прослушивателей, возвращаемые методом emitter.listeners()
, необходимо будет воссоздать.
Если одна функция была добавлена в качестве обработчика несколько раз для одного события (как в примере ниже), removeListener()
будет удален последний добавленный экземпляр. В примере once('ping')
прослушиватель удаляется:
import { EventEmitter } from 'node:events';
const ee = new EventEmitter();
function pong() {
console.log('pong');
}
ee.on('ping', pong);
ee.once('ping', pong);
ee.removeListener('ping', pong);
ee.emit('ping');
ee.emit('ping');
Возвращает ссылку на EventEmitter
, чтобы вызовы можно было связать в цепочку.
function removeListener<K>(eventName: string | symbol, listener: (args: any[]) => void): ModuleClient
Параметры
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Возвращаемое значение
Наследуется от InternalClient.removeListener
sendEvent(Message)
function sendEvent(message: Message): Promise<MessageEnqueued>
Параметры
- message
- Message
Возвращаемое значение
Promise<MessageEnqueued>
Наследуется от InternalClient.sendEvent
sendEvent(Message, Callback<MessageEnqueued>)
function sendEvent(message: Message, sendEventCallback: Callback<MessageEnqueued>)
Параметры
- message
- Message
- sendEventCallback
-
Callback<MessageEnqueued>
Наследуется от InternalClient.sendEvent
sendEventBatch(Message[])
function sendEventBatch(messages: Message[]): Promise<MessageEnqueued>
Параметры
- messages
-
Message[]
Возвращаемое значение
Promise<MessageEnqueued>
Наследуется от InternalClient.sendEventBatch
sendEventBatch(Message[], Callback<MessageEnqueued>)
function sendEventBatch(messages: Message[], sendEventBatchCallback: Callback<MessageEnqueued>)
Параметры
- messages
-
Message[]
- sendEventBatchCallback
-
Callback<MessageEnqueued>
Наследуется от InternalClient.sendEventBatch
setMaxListeners(number)
По умолчанию EventEmitter
s выводит предупреждение, если для определенного события добавлено больше 10
прослушивателей. Это полезное значение по умолчанию, которое помогает найти утечки памяти. Метод emitter.setMaxListeners()
позволяет изменить ограничение для этого конкретного экземпляра EventEmitter
. Для указания неограниченного количества прослушивателей можно задатьInfinity
значение (или 0
).
Возвращает ссылку на EventEmitter
, чтобы вызовы можно было связать в цепочку.
function setMaxListeners(n: number): ModuleClient
Параметры
- n
-
number
Возвращаемое значение
Наследуется от InternalClient.setMaxListeners
setMaxListeners(number, (EventEmitter<DefaultEventMap> | _DOMEventTarget)[])
import { setMaxListeners, EventEmitter } from 'node:events';
const target = new EventTarget();
const emitter = new EventEmitter();
setMaxListeners(5, target, emitter);
static function setMaxListeners(n?: number, eventTargets: (EventEmitter<DefaultEventMap> | _DOMEventTarget)[])
Параметры
- n
-
number
Не отрицательное число. Максимальное число прослушивателей на событие EventTarget
.
- eventTargets
-
(EventEmitter<DefaultEventMap> | _DOMEventTarget)[]
Наследуется от InternalClient.setMaxListeners
setRetryPolicy(RetryPolicy)
Задает политику повторных попыток, используемую клиентом для всех операций. Значение по умолчанию — ExponentialBackoffWithJitter.
function setRetryPolicy(policy: RetryPolicy)
Параметры
- policy
-
RetryPolicy
{RetryPolicy} Политика повтора, которая должна использоваться для всех будущих операций.
Наследуется от InternalClient.setRetryPolicy
setTransportOptions(any)
function setTransportOptions(options: any): Promise<TransportConfigured>
Параметры
- options
-
any
Возвращаемое значение
Promise<TransportConfigured>
Наследуется от InternalClient.setTransportOptions
setTransportOptions(any, Callback<TransportConfigured>)
function setTransportOptions(options: any, done: Callback<TransportConfigured>)
Параметры
- options
-
any
- done
-
Callback<TransportConfigured>
Наследуется от InternalClient.setTransportOptions
updateSharedAccessSignature(string, Callback<SharedAccessSignatureUpdated>)
function updateSharedAccessSignature(sharedAccessSignature: string, updateSasCallback?: Callback<SharedAccessSignatureUpdated>)
Параметры
- sharedAccessSignature
-
string
- updateSasCallback
-
Callback<SharedAccessSignatureUpdated>
Наследуется от InternalClient.updateSharedAccessSignature
[captureRejectionSymbol]<K>(Error, string | symbol, AnyRest)
function [captureRejectionSymbol]<K>(error: Error, event: string | symbol, args: AnyRest)
Параметры
- error
-
Error
- event
-
string | symbol
- args
-
AnyRest
Наследуется от InternalClient.__@captureRejectionSymbol@138