Client class

O cliente de serviço Hub IoT é usado para se comunicar com dispositivos por meio de um hub IoT do Azure. Ele permite que o usuário do SDK:

  • enviar nuvem para dispositivo (também conhecido como comandos) para dispositivos: os comandos são enfileirados em Hub IoT e entregues de forma assíncrona somente quando o dispositivo está conectado. Somente 50 comandos podem ser enfileirados por dispositivo.
  • invocar métodos diretos em dispositivos (que funcionarão somente se o dispositivo estiver conectado no momento: é uma maneira síncrona de se comunicar com o dispositivo)
  • ouça mensagens de comentários enviadas por dispositivos para comandos anteriores.
  • ouça as notificações de upload de arquivos de dispositivos.

Os usuários devem criar novas Client instâncias chamando um dos métodos de fábrica, fromConnectionString ou fromSharedAccessSignature, para criar um cliente de serviço de Hub IoT.

Extends

EventEmitter

Propriedades herdadas

captureRejections

Valor: booliano

Altere a opção padrão captureRejections em todos os novos EventEmitter objetos.

captureRejectionSymbol

Valor: Symbol.for('nodejs.rejection')

Veja como escrever um personalizado rejection handler.

defaultMaxListeners

Por padrão, um máximo de 10 ouvintes pode ser registrado para qualquer evento único. Esse limite pode ser alterado para instâncias individuais EventEmitter usando o emitter.setMaxListeners(n) método . Para alterar o padrão para todas asEventEmitter instâncias, a events.defaultMaxListeners propriedade pode ser usada. Se esse valor não for um número positivo, um RangeError será gerado.

Tenha cuidado ao definir o events.defaultMaxListeners porque a alteração afeta todas asEventEmitter instâncias, incluindo aquelas criadas antes que a alteração seja feita. No entanto, a chamada emitter.setMaxListeners(n) ainda tem precedência sobre events.defaultMaxListeners.

Este não é um limite difícil. A EventEmitter instância permitirá que mais ouvintes sejam adicionados, mas gerará um aviso de rastreamento para stderr indicando que um "possível vazamento de memória eventEmitter" foi detectado. Para qualquer único EventEmitter, os emitter.getMaxListeners() métodos e emitter.setMaxListeners() podem ser usados para evitar temporariamente este aviso:

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));
});

O --trace-warnings sinalizador de linha de comando pode ser usado para exibir o rastreamento de pilha para esses avisos.

O aviso emitido pode ser inspecionado com process.on('warning') e terá as propriedades , typee count adicionaisemitter, referindo-se à instância do emissor do evento, ao nome do evento e ao número de ouvintes anexados, respectivamente. Sua name propriedade é definida como 'MaxListenersExceededWarning'.

errorMonitor

Esse símbolo deve ser usado para instalar um ouvinte apenas para eventos de monitoramento 'error' . Os ouvintes instalados usando esse símbolo são chamados antes que os ouvintes regulares 'error' sejam chamados.

Instalar um ouvinte usando esse símbolo não altera o comportamento depois que um 'error' evento é emitido. Portanto, o processo ainda falhará se nenhum ouvinte regular 'error' estiver instalado.

Métodos

close()
close(IncomingMessageCallback<Disconnected>)

Fecha a conexão com um hub IoT.

fromConnectionString(string, TransportCtor)

Cria um cliente de serviço Hub IoT do cadeia de conexão fornecido usando o transporte padrão (Amqp) ou o especificado no segundo argumento.

fromSharedAccessSignature(string, TransportCtor)

Cria um cliente de serviço Hub IoT a partir da assinatura de acesso compartilhado fornecida usando o transporte padrão (Amqp) ou o especificado no segundo argumento.

fromTokenCredential(string, TokenCredential, TransportCtor)

Cria um cliente de serviço Hub IoT do token do AzureCredential fornecido usando o transporte padrão (Amqp) ou o especificado no segundo argumento.

getFeedbackReceiver()
getFeedbackReceiver(IncomingMessageCallback<ServiceReceiver>)

Retorna um objeto AmqpReceiver que emite eventos quando novas mensagens de comentários são recebidas pelo cliente.

getFileNotificationReceiver()
getFileNotificationReceiver(IncomingMessageCallback<ServiceReceiver>)

Retorna um objeto AmqpReceiver que emite eventos quando novas notificações de upload de arquivo são recebidas pelo cliente.

invokeDeviceMethod(string, DeviceMethodParams)
invokeDeviceMethod(string, DeviceMethodParams, IncomingMessageCallback<any>)

Invoca um método em um dispositivo ou módulo específico.

invokeDeviceMethod(string, string, DeviceMethodParams)
invokeDeviceMethod(string, string, DeviceMethodParams, IncomingMessageCallback<any>)
open()
open(IncomingMessageCallback<Connected>)

Abre a conexão com um hub IoT.

send(string, Message | BufferConvertible)
send(string, Message | BufferConvertible, IncomingMessageCallback<MessageEnqueued>)

Envia uma mensagem para um dispositivo.

setRetryPolicy(RetryPolicy)

Defina a política usada pelo cliente para tentar novamente as operações de rede.

Métodos herdados

addAbortListener(AbortSignal, (event: Event) => void)

Escuta uma vez o abort evento no fornecido signal.

Ouvir o abort evento em sinais de anulação não é seguro e pode levar a vazamentos de recursos, já que outro terceiro com o sinal pode chamar e.stopImmediatePropagation(). Infelizmente, Node.js não pode alterar isso, pois violaria o padrão da Web. Além disso, a API original torna mais fácil esquecer de remover ouvintes.

Essa API permite usar AbortSignals com segurança em APIs Node.js resolvendo esses dois problemas ouvindo o evento de modo que stopImmediatePropagation não impeça a execução do ouvinte.

Retorna um descartável para que ele possa ser cancelado de mais facilmente.

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)

Alias para emitter.on(eventName, listener).

emit<K>(string | symbol, AnyRest)

Chama de forma síncrona cada um dos ouvintes registrados para o evento chamado eventName, na ordem em que foram registrados, passando os argumentos fornecidos para cada um.

Retornará true se o evento tiver ouvintes, false caso contrário.

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

Retorna uma matriz listando os eventos para os quais o emissor registrou ouvintes. Os valores na matriz são cadeias de caracteres ou 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> | EventTarget, string | symbol)

Retorna uma cópia da matriz de ouvintes para o evento chamado eventName.

Para EventEmitters, isso se comporta exatamente da mesma forma que chamar .listeners no emissor.

Para EventTargets, essa é a única maneira de obter os ouvintes de eventos para o destino do evento. Isso é útil para fins de depuração e diagnóstico.

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

Retorna o valor máximo atual do ouvinte para o EventEmitter qual é definido por emitter.setMaxListeners(n) ou o padrão é defaultMaxListeners.

getMaxListeners(EventEmitter<DefaultEventMap> | EventTarget)

Retorna a quantidade máxima de ouvintes definida no momento.

Para EventEmitters, isso se comporta exatamente da mesma forma que chamar .getMaxListeners no emissor.

Para EventTargets, essa é a única maneira de obter o máximo de ouvintes de eventos para o destino do evento. Se o número de manipuladores de eventos em um único EventTarget exceder o conjunto máximo, o EventTarget imprimirá um aviso.

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
}
listenerCount(EventEmitter<DefaultEventMap>, string | symbol)

Um método de classe que retorna o número de ouvintes para o determinado eventName registrado no determinado 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)

Retorna o número de ouvintes que escutam o evento chamado eventName. Se listener for fornecido, ele retornará quantas vezes o ouvinte for encontrado na lista de ouvintes do evento.

listeners<K>(string | symbol)

Retorna uma cópia da matriz de ouvintes para o evento chamado 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)

Alias para 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

Retorna um AsyncIterator que itera eventName eventos. Ele será lançado se o EventEmitter emitir 'error'. Ele remove todos os ouvintes ao sair do loop. O value retornado por cada iteração é uma matriz composta pelos argumentos de evento emitidos.

Um AbortSignal pode ser usado para cancelar a espera de eventos:

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)

Adiciona a listener função ao final da matriz de ouvintes para o evento chamado eventName. Nenhuma verificação é feita para ver se o listener já foi adicionado. Várias chamadas passando a mesma combinação de eventName e listener resultarão na adição listener e chamada várias vezes.

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

Retorna uma referência ao , para EventEmitterque as chamadas possam ser encadeadas.

Por padrão, os ouvintes de eventos são invocados na ordem em que são adicionados. O emitter.prependListener() método pode ser usado como uma alternativa para adicionar o ouvinte de eventos ao início da matriz de ouvintes.

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)

Cria um Promise que é atendido quando o EventEmitter emite o evento especificado ou que é rejeitado se o EventEmitter emite 'error' enquanto aguarda. O Promise resolve com uma matriz de todos os argumentos emitidos para o evento fornecido.

Esse método é intencionalmente genérico e funciona com a interface EventTarget da plataforma Web, que não tem semântica de evento especial'error' e não escuta o 'error' evento.

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);
}

O tratamento especial do 'error' evento só é usado quando events.once() é usado para aguardar outro evento. Se events.once() for usado para aguardar o evento 'error' em si, ele será tratado como qualquer outro tipo de evento sem tratamento especial:

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

Um AbortSignal pode ser usado para cancelar a espera pelo evento:

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(EventTarget, string, StaticEventEmitterOptions)
once<K>(string | symbol, (args: any[]) => void)

Adiciona uma função únicalistener para o evento chamado eventName. Na próxima vez eventName que for disparado, esse ouvinte será removido e invocado.

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

Retorna uma referência ao , para EventEmitterque as chamadas possam ser encadeadas.

Por padrão, os ouvintes de eventos são invocados na ordem em que são adicionados. O emitter.prependOnceListener() método pode ser usado como uma alternativa para adicionar o ouvinte de eventos ao início da matriz de ouvintes.

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
prependListener<K>(string | symbol, (args: any[]) => void)

Adiciona a listener função ao início da matriz de ouvintes para o evento chamado eventName. Nenhuma verificação é feita para ver se o listener já foi adicionado. Várias chamadas passando a mesma combinação de eventName e listener resultarão na adição listener e chamada várias vezes.

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

Retorna uma referência ao , para EventEmitterque as chamadas possam ser encadeadas.

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

Adiciona uma função únicalistener para o evento chamado eventName ao início da matriz de ouvintes. Na próxima vez eventName que for disparado, esse ouvinte será removido e invocado.

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

Retorna uma referência ao , para EventEmitterque as chamadas possam ser encadeadas.

rawListeners<K>(string | symbol)

Retorna uma cópia da matriz de ouvintes para o evento chamado eventName, incluindo quaisquer wrappers (como aqueles criados por .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');
removeAllListeners(string | symbol)

Remove todos os ouvintes ou os do especificado eventName.

É uma prática inadequada remover ouvintes adicionados em outro lugar no código, especialmente quando a EventEmitter instância foi criada por algum outro componente ou módulo (por exemplo, soquetes ou fluxos de arquivo).

Retorna uma referência ao , para EventEmitterque as chamadas possam ser encadeadas.

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

Remove o especificado listener da matriz de ouvintes para o evento chamado eventName.

const callback = (stream) => {
  console.log('someone connected!');
};
server.on('connection', callback);
// ...
server.removeListener('connection', callback);

removeListener() removerá, no máximo, uma instância de um ouvinte da matriz de ouvintes. Se um único ouvinte tiver sido adicionado várias vezes à matriz de ouvintes do especificado eventName, deverá removeListener() ser chamado várias vezes para remover cada instância.

Depois que um evento é emitido, todos os ouvintes anexados a ele no momento da emissão são chamados em ordem. Isso implica que qualquer removeListener() chamada ou removeAllListeners()após a emissão e antes que o último ouvinte termine a execução não as removerá ememit() andamento. Eventos subsequentes se comportam conforme o esperado.

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

Como os ouvintes são gerenciados usando uma matriz interna, chamar isso alterará os índices de posição de qualquer ouvinte registrado após a remoção do ouvinte. Isso não afetará a ordem na qual os ouvintes são chamados, mas significa que todas as cópias da matriz de ouvintes, conforme retornado pelo emitter.listeners() método, precisarão ser recriadas.

Quando uma única função tiver sido adicionada como um manipulador várias vezes para um único evento (como no exemplo abaixo), removeListener() removerá a instância adicionada mais recentemente. No exemplo, o once('ping') ouvinte é removido:

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');

Retorna uma referência ao , para EventEmitterque as chamadas possam ser encadeadas.

setMaxListeners(number)

Por padrão EventEmitter, s imprimirão um aviso se mais de 10 ouvintes forem adicionados para um evento específico. Esse é um padrão útil que ajuda a encontrar vazamentos de memória. O emitter.setMaxListeners() método permite que o limite seja modificado para essa instância específica EventEmitter . O valor pode ser definido Infinity como (ou 0) para indicar um número ilimitado de ouvintes.

Retorna uma referência ao , para EventEmitterque as chamadas possam ser encadeadas.

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

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

setMaxListeners(5, target, emitter);
[captureRejectionSymbol]<K>(Error, string | symbol, AnyRest)

Detalhes das propriedades herdadas

captureRejections

Valor: booliano

Altere a opção padrão captureRejections em todos os novos EventEmitter objetos.

static captureRejections: boolean

Valor da propriedade

boolean

Herdado de EventEmitter.captureRejections

captureRejectionSymbol

Valor: Symbol.for('nodejs.rejection')

Veja como escrever um personalizado rejection handler.

static captureRejectionSymbol: typeof captureRejectionSymbol

Valor da propriedade

typeof captureRejectionSymbol

Herdado de EventEmitter.captureRejectionSymbol

defaultMaxListeners

Por padrão, um máximo de 10 ouvintes pode ser registrado para qualquer evento único. Esse limite pode ser alterado para instâncias individuais EventEmitter usando o emitter.setMaxListeners(n) método . Para alterar o padrão para todas asEventEmitter instâncias, a events.defaultMaxListeners propriedade pode ser usada. Se esse valor não for um número positivo, um RangeError será gerado.

Tenha cuidado ao definir o events.defaultMaxListeners porque a alteração afeta todas asEventEmitter instâncias, incluindo aquelas criadas antes que a alteração seja feita. No entanto, a chamada emitter.setMaxListeners(n) ainda tem precedência sobre events.defaultMaxListeners.

Este não é um limite difícil. A EventEmitter instância permitirá que mais ouvintes sejam adicionados, mas gerará um aviso de rastreamento para stderr indicando que um "possível vazamento de memória eventEmitter" foi detectado. Para qualquer único EventEmitter, os emitter.getMaxListeners() métodos e emitter.setMaxListeners() podem ser usados para evitar temporariamente este aviso:

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));
});

O --trace-warnings sinalizador de linha de comando pode ser usado para exibir o rastreamento de pilha para esses avisos.

O aviso emitido pode ser inspecionado com process.on('warning') e terá as propriedades , typee count adicionaisemitter, referindo-se à instância do emissor do evento, ao nome do evento e ao número de ouvintes anexados, respectivamente. Sua name propriedade é definida como 'MaxListenersExceededWarning'.

static defaultMaxListeners: number

Valor da propriedade

number

Herdado de EventEmitter.defaultMaxListeners

errorMonitor

Esse símbolo deve ser usado para instalar um ouvinte apenas para eventos de monitoramento 'error' . Os ouvintes instalados usando esse símbolo são chamados antes que os ouvintes regulares 'error' sejam chamados.

Instalar um ouvinte usando esse símbolo não altera o comportamento depois que um 'error' evento é emitido. Portanto, o processo ainda falhará se nenhum ouvinte regular 'error' estiver instalado.

static errorMonitor: typeof errorMonitor

Valor da propriedade

typeof errorMonitor

Herdado de EventEmitter.errorMonitor

Detalhes do método

close()

function close(): Promise<ResultWithIncomingMessage<Disconnected>>

Retornos

Promise<ResultWithIncomingMessage<Disconnected>>

close(IncomingMessageCallback<Disconnected>)

Fecha a conexão com um hub IoT.

function close(done?: IncomingMessageCallback<Disconnected>)

Parâmetros

done

IncomingMessageCallback<Disconnected>

A função opcional a ser chamada quando a operação for concluída. done será passado um argumento de objeto Error, que será nulo se a operação for concluída com êxito.

fromConnectionString(string, TransportCtor)

Cria um cliente de serviço Hub IoT do cadeia de conexão fornecido usando o transporte padrão (Amqp) ou o especificado no segundo argumento.

static function fromConnectionString(connStr: string, transportCtor?: TransportCtor): Client

Parâmetros

connStr

string

Um cadeia de conexão que encapsula permissões de "conexão de dispositivo" em um hub IoT.

transportCtor
TransportCtor

Retornos

fromSharedAccessSignature(string, TransportCtor)

Cria um cliente de serviço Hub IoT a partir da assinatura de acesso compartilhado fornecida usando o transporte padrão (Amqp) ou o especificado no segundo argumento.

static function fromSharedAccessSignature(sharedAccessSignature: string, transportCtor?: TransportCtor): Client

Parâmetros

sharedAccessSignature

string

Uma assinatura de acesso compartilhado que encapsula permissões de "conexão de serviço" em um hub IoT.

transportCtor
TransportCtor

Retornos

fromTokenCredential(string, TokenCredential, TransportCtor)

Cria um cliente de serviço Hub IoT do token do AzureCredential fornecido usando o transporte padrão (Amqp) ou o especificado no segundo argumento.

static function fromTokenCredential(hostName: string, tokenCredential: TokenCredential, transportCtor?: TransportCtor): Client

Parâmetros

hostName

string

Nome do host do serviço do Azure.

tokenCredential
TokenCredential

Um Tokencredential do Azure usado para autenticar com o serviço do Azure

transportCtor
TransportCtor

Retornos

getFeedbackReceiver()

function getFeedbackReceiver(): Promise<ResultWithIncomingMessage<ServiceReceiver>>

Retornos

Promise<ResultWithIncomingMessage<ServiceReceiver>>

getFeedbackReceiver(IncomingMessageCallback<ServiceReceiver>)

Retorna um objeto AmqpReceiver que emite eventos quando novas mensagens de comentários são recebidas pelo cliente.

function getFeedbackReceiver(done?: IncomingMessageCallback<ServiceReceiver>)

Parâmetros

done

IncomingMessageCallback<ServiceReceiver>

A função opcional a ser chamada quando a operação for concluída. done será chamado com dois argumentos: um objeto Error (pode ser nulo) e um objeto AmqpReceiver.

getFileNotificationReceiver()

function getFileNotificationReceiver(): Promise<ResultWithIncomingMessage<ServiceReceiver>>

Retornos

Promise<ResultWithIncomingMessage<ServiceReceiver>>

getFileNotificationReceiver(IncomingMessageCallback<ServiceReceiver>)

Retorna um objeto AmqpReceiver que emite eventos quando novas notificações de upload de arquivo são recebidas pelo cliente.

function getFileNotificationReceiver(done?: IncomingMessageCallback<ServiceReceiver>)

Parâmetros

done

IncomingMessageCallback<ServiceReceiver>

A função opcional a ser chamada quando a operação for concluída. done será chamado com dois argumentos: um objeto Error (pode ser nulo) e um objeto AmqpReceiver.

invokeDeviceMethod(string, DeviceMethodParams)

function invokeDeviceMethod(deviceId: string, methodParams: DeviceMethodParams): Promise<ResultWithIncomingMessage<any>>

Parâmetros

deviceId

string

methodParams
DeviceMethodParams

Retornos

Promise<ResultWithIncomingMessage<any>>

invokeDeviceMethod(string, DeviceMethodParams, IncomingMessageCallback<any>)

Invoca um método em um dispositivo ou módulo específico.

function invokeDeviceMethod(deviceId: string, methodParams: DeviceMethodParams, done?: IncomingMessageCallback<any>)

Parâmetros

deviceId

string

O identificador de uma identidade de dispositivo existente.

methodParams
DeviceMethodParams
done

IncomingMessageCallback<any>

O retorno de chamada opcional a ser chamado com o resultado da execução do método.

invokeDeviceMethod(string, string, DeviceMethodParams)

function invokeDeviceMethod(deviceId: string, moduleId: string, methodParams: DeviceMethodParams): Promise<ResultWithIncomingMessage<any>>

Parâmetros

deviceId

string

moduleId

string

methodParams
DeviceMethodParams

Retornos

Promise<ResultWithIncomingMessage<any>>

invokeDeviceMethod(string, string, DeviceMethodParams, IncomingMessageCallback<any>)

function invokeDeviceMethod(deviceId: string, moduleId: string, methodParams: DeviceMethodParams, done: IncomingMessageCallback<any>)

Parâmetros

deviceId

string

moduleId

string

methodParams
DeviceMethodParams
done

IncomingMessageCallback<any>

open()

function open(): Promise<ResultWithIncomingMessage<Connected>>

Retornos

Promise<ResultWithIncomingMessage<Connected>>

open(IncomingMessageCallback<Connected>)

Abre a conexão com um hub IoT.

function open(done?: IncomingMessageCallback<Connected>)

Parâmetros

done

IncomingMessageCallback<Connected>

A função opcional a ser chamada quando a operação for concluída. done será passado um argumento de objeto Error, que será nulo se a operação for concluída com êxito.

send(string, Message | BufferConvertible)

function send(deviceId: string, message: Message | BufferConvertible): Promise<ResultWithIncomingMessage<MessageEnqueued>>

Parâmetros

deviceId

string

message

Message | BufferConvertible

Retornos

Promise<ResultWithIncomingMessage<MessageEnqueued>>

send(string, Message | BufferConvertible, IncomingMessageCallback<MessageEnqueued>)

Envia uma mensagem para um dispositivo.

function send(deviceId: string, message: Message | BufferConvertible, done?: IncomingMessageCallback<MessageEnqueued>)

Parâmetros

deviceId

string

O identificador de uma identidade de dispositivo existente.

message

Message | BufferConvertible

O corpo da mensagem a ser enviada para o dispositivo. Se message não for do tipo Mensagem, ela será convertida.

done

IncomingMessageCallback<MessageEnqueued>

A função opcional a ser chamada quando a operação for concluída. done será chamado com dois argumentos: um objeto Error (pode ser nulo) e um objeto de resposta específico do transporte útil para registro em log ou depuração.

setRetryPolicy(RetryPolicy)

Defina a política usada pelo cliente para tentar novamente as operações de rede.

function setRetryPolicy(policy: RetryPolicy)

Parâmetros

policy

RetryPolicy

política usada para repetir operações (por exemplo, abrir, enviar etc.). O SDK vem com duas políticas "internas": ExponentialBackoffWithJitter (padrão) e NoRetry (para cancelar qualquer forma de repetição). O usuário também pode passar seu próprio objeto desde que implemente dois métodos: - shouldRetry(err: Error): boolean : indica se uma operação deve ser repetida com base no tipo de erro - nextRetryTimeout(retryCount: number, limitado: booliano): número : retorna o tempo de espera (em milissegundos) antes de tentar novamente com base no número passado de tentativas (retryCount) e o fato de que o erro é um erro de limitação ou não.

Detalhes do método herdado

addAbortListener(AbortSignal, (event: Event) => void)

Escuta uma vez o abort evento no fornecido signal.

Ouvir o abort evento em sinais de anulação não é seguro e pode levar a vazamentos de recursos, já que outro terceiro com o sinal pode chamar e.stopImmediatePropagation(). Infelizmente, Node.js não pode alterar isso, pois violaria o padrão da Web. Além disso, a API original torna mais fácil esquecer de remover ouvintes.

Essa API permite usar AbortSignals com segurança em APIs Node.js resolvendo esses dois problemas ouvindo o evento de modo que stopImmediatePropagation não impeça a execução do ouvinte.

Retorna um descartável para que ele possa ser cancelado de mais facilmente.

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

Parâmetros

signal

AbortSignal

resource

(event: Event) => void

Retornos

Disposable

Descartável que remove o abort ouvinte.

Herdado de EventEmitter.addAbortListener

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

Alias para emitter.on(eventName, listener).

function addListener<K>(eventName: string | symbol, listener: (args: any[]) => void): Client

Parâmetros

eventName

string | symbol

listener

(args: any[]) => void

Retornos

Herdado de EventEmitter.addListener

emit<K>(string | symbol, AnyRest)

Chama de forma síncrona cada um dos ouvintes registrados para o evento chamado eventName, na ordem em que foram registrados, passando os argumentos fornecidos para cada um.

Retornará true se o evento tiver ouvintes, false caso contrário.

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

Parâmetros

eventName

string | symbol

args

AnyRest

Retornos

boolean

Herdado de EventEmitter.emit

eventNames()

Retorna uma matriz listando os eventos para os quais o emissor registrou ouvintes. Os valores na matriz são cadeias de caracteres ou 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)[]

Retornos

(string | symbol)[]

Herdado de EventEmitter.eventNames

getEventListeners(EventEmitter<DefaultEventMap> | EventTarget, string | symbol)

Retorna uma cópia da matriz de ouvintes para o evento chamado eventName.

Para EventEmitters, isso se comporta exatamente da mesma forma que chamar .listeners no emissor.

Para EventTargets, essa é a única maneira de obter os ouvintes de eventos para o destino do evento. Isso é útil para fins de depuração e diagnóstico.

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> | EventTarget, name: string | symbol): Function[]

Parâmetros

emitter

EventEmitter<DefaultEventMap> | EventTarget

name

string | symbol

Retornos

Function[]

Herdado de EventEmitter.getEventListeners

getMaxListeners()

Retorna o valor máximo atual do ouvinte para o EventEmitter qual é definido por emitter.setMaxListeners(n) ou o padrão é defaultMaxListeners.

function getMaxListeners(): number

Retornos

number

Herdado de EventEmitter.getMaxListeners

getMaxListeners(EventEmitter<DefaultEventMap> | EventTarget)

Retorna a quantidade máxima de ouvintes definida no momento.

Para EventEmitters, isso se comporta exatamente da mesma forma que chamar .getMaxListeners no emissor.

Para EventTargets, essa é a única maneira de obter o máximo de ouvintes de eventos para o destino do evento. Se o número de manipuladores de eventos em um único EventTarget exceder o conjunto máximo, o EventTarget imprimirá um aviso.

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> | EventTarget): number

Parâmetros

emitter

EventEmitter<DefaultEventMap> | EventTarget

Retornos

number

Herdado de EventEmitter.getMaxListeners

listenerCount(EventEmitter<DefaultEventMap>, string | symbol)

Aviso

Essa API foi preterida.

Since v3.2.0 - Use listenerCount instead.

Um método de classe que retorna o número de ouvintes para o determinado eventName registrado no determinado 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

Parâmetros

emitter

EventEmitter<DefaultEventMap>

O emissor a ser consultado

eventName

string | symbol

O nome do evento

Retornos

number

Herdado de EventEmitter.listenerCount

listenerCount<K>(string | symbol, Function)

Retorna o número de ouvintes que escutam o evento chamado eventName. Se listener for fornecido, ele retornará quantas vezes o ouvinte for encontrado na lista de ouvintes do evento.

function listenerCount<K>(eventName: string | symbol, listener?: Function): number

Parâmetros

eventName

string | symbol

O nome do evento que está sendo escutado

listener

Function

A função de manipulador de eventos

Retornos

number

Herdado de EventEmitter.listenerCount

listeners<K>(string | symbol)

Retorna uma cópia da matriz de ouvintes para o evento chamado 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[]

Parâmetros

eventName

string | symbol

Retornos

Function[]

Herdado de EventEmitter.listeners

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

Alias para emitter.removeListener().

function off<K>(eventName: string | symbol, listener: (args: any[]) => void): Client

Parâmetros

eventName

string | symbol

listener

(args: any[]) => void

Retornos

Herdado de EventEmitter.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

Retorna um AsyncIterator que itera eventName eventos. Ele será lançado se o EventEmitter emitir 'error'. Ele remove todos os ouvintes ao sair do loop. O value retornado por cada iteração é uma matriz composta pelos argumentos de evento emitidos.

Um AbortSignal pode ser usado para cancelar a espera de eventos:

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>

Parâmetros

emitter

EventEmitter<DefaultEventMap>

eventName

string

O nome do evento que está sendo escutado

options

StaticEventEmitterOptions

Retornos

AsyncIterableIterator<any>

Um AsyncIterator que itera eventos emitidos eventName pelo emitter

Herdado de EventEmitter.on

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

Adiciona a listener função ao final da matriz de ouvintes para o evento chamado eventName. Nenhuma verificação é feita para ver se o listener já foi adicionado. Várias chamadas passando a mesma combinação de eventName e listener resultarão na adição listener e chamada várias vezes.

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

Retorna uma referência ao , para EventEmitterque as chamadas possam ser encadeadas.

Por padrão, os ouvintes de eventos são invocados na ordem em que são adicionados. O emitter.prependListener() método pode ser usado como uma alternativa para adicionar o ouvinte de eventos ao início da matriz de ouvintes.

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): Client

Parâmetros

eventName

string | symbol

O nome do evento.

listener

(args: any[]) => void

A função de retorno de chamada

Retornos

Herdado de EventEmitter.on

once(EventEmitter<DefaultEventMap>, string | symbol, StaticEventEmitterOptions)

Cria um Promise que é atendido quando o EventEmitter emite o evento especificado ou que é rejeitado se o EventEmitter emite 'error' enquanto aguarda. O Promise resolve com uma matriz de todos os argumentos emitidos para o evento fornecido.

Esse método é intencionalmente genérico e funciona com a interface EventTarget da plataforma Web, que não tem semântica de evento especial'error' e não escuta o 'error' evento.

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);
}

O tratamento especial do 'error' evento só é usado quando events.once() é usado para aguardar outro evento. Se events.once() for usado para aguardar o evento 'error' em si, ele será tratado como qualquer outro tipo de evento sem tratamento especial:

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

Um AbortSignal pode ser usado para cancelar a espera pelo evento:

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[]>

Parâmetros

emitter

EventEmitter<DefaultEventMap>

eventName

string | symbol

options

StaticEventEmitterOptions

Retornos

Promise<any[]>

Herdado de EventEmitter.once

once(EventTarget, string, StaticEventEmitterOptions)

static function once(emitter: EventTarget, eventName: string, options?: StaticEventEmitterOptions): Promise<any[]>

Parâmetros

emitter

EventTarget

eventName

string

options

StaticEventEmitterOptions

Retornos

Promise<any[]>

Herdado de EventEmitter.once

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

Adiciona uma função únicalistener para o evento chamado eventName. Na próxima vez eventName que for disparado, esse ouvinte será removido e invocado.

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

Retorna uma referência ao , para EventEmitterque as chamadas possam ser encadeadas.

Por padrão, os ouvintes de eventos são invocados na ordem em que são adicionados. O emitter.prependOnceListener() método pode ser usado como uma alternativa para adicionar o ouvinte de eventos ao início da matriz de ouvintes.

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): Client

Parâmetros

eventName

string | symbol

O nome do evento.

listener

(args: any[]) => void

A função de retorno de chamada

Retornos

Herdado de EventEmitter.once

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

Adiciona a listener função ao início da matriz de ouvintes para o evento chamado eventName. Nenhuma verificação é feita para ver se o listener já foi adicionado. Várias chamadas passando a mesma combinação de eventName e listener resultarão na adição listener e chamada várias vezes.

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

Retorna uma referência ao , para EventEmitterque as chamadas possam ser encadeadas.

function prependListener<K>(eventName: string | symbol, listener: (args: any[]) => void): Client

Parâmetros

eventName

string | symbol

O nome do evento.

listener

(args: any[]) => void

A função de retorno de chamada

Retornos

Herdado de EventEmitter.prependListener

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

Adiciona uma função únicalistener para o evento chamado eventName ao início da matriz de ouvintes. Na próxima vez eventName que for disparado, esse ouvinte será removido e invocado.

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

Retorna uma referência ao , para EventEmitterque as chamadas possam ser encadeadas.

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

Parâmetros

eventName

string | symbol

O nome do evento.

listener

(args: any[]) => void

A função de retorno de chamada

Retornos

Herdado de EventEmitter.prependOnceListener

rawListeners<K>(string | symbol)

Retorna uma cópia da matriz de ouvintes para o evento chamado eventName, incluindo quaisquer wrappers (como aqueles criados por .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[]

Parâmetros

eventName

string | symbol

Retornos

Function[]

Herdado de EventEmitter.rawListeners

removeAllListeners(string | symbol)

Remove todos os ouvintes ou os do especificado eventName.

É uma prática inadequada remover ouvintes adicionados em outro lugar no código, especialmente quando a EventEmitter instância foi criada por algum outro componente ou módulo (por exemplo, soquetes ou fluxos de arquivo).

Retorna uma referência ao , para EventEmitterque as chamadas possam ser encadeadas.

function removeAllListeners(eventName?: string | symbol): Client

Parâmetros

eventName

string | symbol

Retornos

Herdado de EventEmitter.removeAllListeners

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

Remove o especificado listener da matriz de ouvintes para o evento chamado eventName.

const callback = (stream) => {
  console.log('someone connected!');
};
server.on('connection', callback);
// ...
server.removeListener('connection', callback);

removeListener() removerá, no máximo, uma instância de um ouvinte da matriz de ouvintes. Se um único ouvinte tiver sido adicionado várias vezes à matriz de ouvintes do especificado eventName, deverá removeListener() ser chamado várias vezes para remover cada instância.

Depois que um evento é emitido, todos os ouvintes anexados a ele no momento da emissão são chamados em ordem. Isso implica que qualquer removeListener() chamada ou removeAllListeners()após a emissão e antes que o último ouvinte termine a execução não as removerá ememit() andamento. Eventos subsequentes se comportam conforme o esperado.

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

Como os ouvintes são gerenciados usando uma matriz interna, chamar isso alterará os índices de posição de qualquer ouvinte registrado após a remoção do ouvinte. Isso não afetará a ordem na qual os ouvintes são chamados, mas significa que todas as cópias da matriz de ouvintes, conforme retornado pelo emitter.listeners() método, precisarão ser recriadas.

Quando uma única função tiver sido adicionada como um manipulador várias vezes para um único evento (como no exemplo abaixo), removeListener() removerá a instância adicionada mais recentemente. No exemplo, o once('ping') ouvinte é removido:

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');

Retorna uma referência ao , para EventEmitterque as chamadas possam ser encadeadas.

function removeListener<K>(eventName: string | symbol, listener: (args: any[]) => void): Client

Parâmetros

eventName

string | symbol

listener

(args: any[]) => void

Retornos

Herdado de EventEmitter.removeListener

setMaxListeners(number)

Por padrão EventEmitter, s imprimirão um aviso se mais de 10 ouvintes forem adicionados para um evento específico. Esse é um padrão útil que ajuda a encontrar vazamentos de memória. O emitter.setMaxListeners() método permite que o limite seja modificado para essa instância específica EventEmitter . O valor pode ser definido Infinity como (ou 0) para indicar um número ilimitado de ouvintes.

Retorna uma referência ao , para EventEmitterque as chamadas possam ser encadeadas.

function setMaxListeners(n: number): Client

Parâmetros

n

number

Retornos

Herdado de EventEmitter.setMaxListeners

setMaxListeners(number, (EventEmitter<DefaultEventMap> | EventTarget)[])

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> | EventTarget)[])

Parâmetros

n

number

Um número não negativo. O número máximo de ouvintes por EventTarget evento.

eventTargets

(EventEmitter<DefaultEventMap> | EventTarget)[]

Herdado de EventEmitter.setMaxListeners

[captureRejectionSymbol]<K>(Error, string | symbol, AnyRest)

function [captureRejectionSymbol]<K>(error: Error, event: string | symbol, args: AnyRest)

Parâmetros

error

Error

event

string | symbol

args

AnyRest

Herdado de EventEmitter.__@captureRejectionSymbol@115