ModuleClient class

Центр Интернета вещей клиента устройства, используемого для подключения устройства к Центру Интернета вещей Azure.

Чтобы создать клиент Центр Интернета вещей устройства, пользователи пакета SDK должны вызвать один из методов фабрики, fromConnectionString или fromSharedAccessSignature.

Extends

InternalClient

Унаследованные свойства

captureRejections

Значение: логическое значение

Измените параметр по умолчанию captureRejections для всех новых EventEmitter объектов.

captureRejectionSymbol

Значение: Symbol.for('nodejs.rejection')

Узнайте, как написать пользовательский rejection handlerобъект .

defaultMaxListeners

По умолчанию для любого события можно зарегистрировать максимум 10 прослушивателей. Это ограничение можно изменить для отдельных EventEmitter экземпляров с помощью emitter.setMaxListeners(n) метода . Чтобы изменить значение по умолчанию для всехEventEmitter экземпляров, events.defaultMaxListenersможно использовать свойство . Если это значение не является положительным числом RangeError, возникает исключение .

Будьте внимательны при задании , events.defaultMaxListeners так как изменение влияет на всеEventEmitter экземпляры, включая экземпляры, созданные до внесения изменения. Однако вызов emitter.setMaxListeners(n) по-прежнему имеет приоритет над events.defaultMaxListeners.

Это не жесткий предел. Экземпляр EventEmitter позволит добавить больше прослушивателей, но выдаст в stderr предупреждение трассировки, указывающее, что обнаружена "возможная утечка памяти EventEmitter". Для любого отдельногоEventEmitteremitter.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'.

errorMonitor

Этот символ используется для установки прослушивателя только для мониторинга 'error'событий. Прослушиватели, установленные с помощью этого символа, вызываются перед вызовом обычных'error' прослушивателей.

Установка прослушивателя с использованием этого символа не изменяет поведение после'error' создания события. Таким образом, процесс по-прежнему будет завершатся сбоем, если не установлен обычный 'error' прослушиватель.

Методы

close()
close(Callback<Disconnected>)

Закрывает транспортное подключение и уничтожает ресурсы клиента.

Примечание. После вызова этого метода объект ModuleClient нельзя использовать повторно.

fromAuthenticationProvider(AuthenticationProvider, any)

Создает клиент модуля Центр Интернета вещей из заданного метода проверки подлинности и использует заданный тип транспорта.

fromConnectionString(string, any)

Создает клиент Центр Интернета вещей устройства из заданного строка подключения, используя заданный тип транспорта.

fromEnvironment(any)
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"
fromSharedAccessSignature(string, any)

Создает клиент модуля Центр Интернета вещей из заданной подписанной URL-адреса с использованием заданного типа транспорта.

invokeMethod(string, MethodParams)
invokeMethod(string, MethodParams, Callback<MethodResult>)

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

invokeMethod(string, string, MethodParams)
invokeMethod(string, string, MethodParams, Callback<MethodResult>)
onMethod(string, DoubleValueCallback<DeviceMethodRequest, DeviceMethodResponse>)

Регистрирует обратный вызов для метода с именем methodName.

sendOutputEvent(string, Message)
sendOutputEvent(string, Message, Callback<MessageEnqueued>)

Отправляет событие в выходные данные заданного модуля.

sendOutputEventBatch(string, Message[])
sendOutputEventBatch(string, Message[], Callback<MessageEnqueued>)

Отправляет массив событий в выходные данные заданного модуля.

setOptions(DeviceClientOptions)
setOptions(DeviceClientOptions, Callback<TransportConfigured>)

Передает параметры объекту ModuleClient , который можно использовать для настройки транспорта.

Наследуемые методы

abandon(Message)
abandon(Message, Callback<MessageAbandoned>)
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]();
  }
}
addListener<K>(string | symbol, (args: any[]) => void)

Псевдоним для emitter.on(eventName, listener).

complete(Message)
complete(Message, Callback<MessageCompleted>)
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
eventNames()

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

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) ]
getEventListeners(EventEmitter<DefaultEventMap> | _DOMEventTarget, string | symbol)

Возвращает копию массива прослушивателей для события с именем eventName.

Для EventEmitters это ведет себя точно так же, как вызов .listeners на излучателя.

Для EventTargets это единственный способ получить прослушиватели событий для целевого объекта события. Это полезно для отладки и диагностики.

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] ]
}
getMaxListeners()

Возвращает текущее максимальное значение прослушивателя для EventEmitter , для которого задано emitter.setMaxListeners(n) значение defaultMaxListeners или по умолчанию.

getMaxListeners(EventEmitter<DefaultEventMap> | _DOMEventTarget)

Возвращает заданное в настоящее время максимальное количество прослушивателей.

Для EventEmitters это ведет себя точно так же, как вызов .getMaxListeners на излучателя.

Для EventTargets это единственный способ получить максимальное число прослушивателей событий для целевого объекта события. Если количество обработчиков событий в одном Объекте 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
}
getTwin()
getTwin(Callback<Twin>)
listenerCount(EventEmitter<DefaultEventMap>, string | symbol)

Метод класса, возвращающий количество прослушивателей для заданного 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
listenerCount<K>(string | symbol, Function)

Возвращает число прослушивателей, прослушивающих событие с именем eventName. Если listener указан параметр , он вернет, сколько раз прослушиватель находится в списке прослушивателей события.

listeners<K>(string | symbol)

Возвращает копию массива прослушивателей для события с именем eventName.

server.on('connection', (stream) => {
  console.log('someone connected!');
});
console.log(util.inspect(server.listeners('connection')));
// Prints: [ [Function] ]
off<K>(string | symbol, (args: any[]) => void)

Псевдоним для emitter.removeListener().

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());
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
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!
once(_DOMEventTarget, string, StaticEventEmitterOptions)
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
open()
open(Callback<Connected>)
prependListener<K>(string | symbol, (args: any[]) => void)

Добавляет функцию в listenerначало массива прослушивателей для события с именем eventName. Проверки, чтобы проверить, был ли listener уже добавлен , не выполняется. Несколько вызовов, которые передают одно и то же сочетание eventNameи listener , приведут к добавлению listener и вызову несколько раз.

server.prependListener('connection', (stream) => {
  console.log('someone connected!');
});

Возвращает ссылку на EventEmitter, чтобы вызовы можно было связать в цепочку.

prependOnceListener<K>(string | symbol, (args: any[]) => void)

Добавляет одноразовуюlistener функцию для события с именем eventName в начало массива прослушивателей. При следующем eventName запуске этот прослушиватель удаляется, а затем вызывается.

server.prependOnceListener('connection', (stream) => {
  console.log('Ah, we have our first user!');
});

Возвращает ссылку на EventEmitter, чтобы вызовы можно было связать в цепочку.

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');
reject(Message)
reject(Message, Callback<MessageRejected>)
removeAllListeners(string | symbol)

Удаляет все прослушиватели или прослушиватели указанного eventNameобъекта .

Не рекомендуется удалять прослушиватели, добавленные в другое место кода, особенно если EventEmitter экземпляр был создан каким-либо другим компонентом или модулем (например, сокетами или файловым потоком).

Возвращает ссылку на EventEmitter, чтобы вызовы можно было связать в цепочку.

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, чтобы вызовы можно было связать в цепочку.

sendEvent(Message)
sendEvent(Message, Callback<MessageEnqueued>)
sendEventBatch(Message[])
sendEventBatch(Message[], Callback<MessageEnqueued>)
setMaxListeners(number)

По умолчанию EventEmitters выводит предупреждение, если для определенного события добавлено больше 10 прослушивателей. Это полезное значение по умолчанию, которое помогает найти утечки памяти. Метод emitter.setMaxListeners() позволяет изменить ограничение для этого конкретного экземпляра EventEmitter . Для указания неограниченного количества прослушивателей можно задатьInfinity значение (или 0).

Возвращает ссылку на EventEmitter, чтобы вызовы можно было связать в цепочку.

setMaxListeners(number, (EventEmitter<DefaultEventMap> | _DOMEventTarget)[])
import { setMaxListeners, EventEmitter } from 'node:events';

const target = new EventTarget();
const emitter = new EventEmitter();

setMaxListeners(5, target, emitter);
setRetryPolicy(RetryPolicy)

Задает политику повторных попыток, используемую клиентом для всех операций. Значение по умолчанию — ExponentialBackoffWithJitter.

setTransportOptions(any)
setTransportOptions(any, Callback<TransportConfigured>)
updateSharedAccessSignature(string, Callback<SharedAccessSignatureUpdated>)
[captureRejectionSymbol]<K>(Error, string | symbol, AnyRest)

Сведения об унаследованном свойстве

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". Для любого отдельногоEventEmitteremitter.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>

Параметры

Возвращаемое значение

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()

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

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.

Для EventEmitters это ведет себя точно так же, как вызов .listeners на излучателя.

Для EventTargets это единственный способ получить прослушиватели событий для целевого объекта события. Это полезно для отладки и диагностики.

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)

Возвращает заданное в настоящее время максимальное количество прослушивателей.

Для EventEmitters это ведет себя точно так же, как вызов .getMaxListeners на излучателя.

Для EventTargets это единственный способ получить максимальное число прослушивателей событий для целевого объекта события. Если количество обработчиков событий в одном Объекте 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)

По умолчанию EventEmitters выводит предупреждение, если для определенного события добавлено больше 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