ServiceReceiver interface

Extends

Receiver

Métodos

abandon(Message, Callback<MessageAbandoned>)
complete(Message, Callback<MessageCompleted>)
reject(Message, Callback<MessageRejected>)

Métodos Herdados

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 serviços de escuta registados para o evento com o nome eventName, pela ordem em que foram registados, transmitindo os argumentos fornecidos para cada um.

Devolve true se o evento tiver serviços de escuta, 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()

Devolve uma matriz que lista os eventos para os quais o emissor registou serviços de escuta. Os valores na matriz são cadeias 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) ]
getMaxListeners()

Devolve o valor máximo do serviço de escuta atual para o EventEmitter que está definido por emitter.setMaxListeners(n) ou predefinição como defaultMaxListeners.

listenerCount<K>(string | symbol, Function)

Devolve o número de serviços de escuta que escutam o evento com o nome eventName. Se listener for fornecido, devolverá o número de vezes que o serviço de escuta é encontrado na lista de serviços de escuta do evento.

listeners<K>(string | symbol)

Devolve uma cópia da matriz de serviços de escuta do evento com o nome 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("errorReceived", (err: Error) => void)
on("message", (msg: Message) => void)
on(string, Function)
once<K>(string | symbol, (args: any[]) => void)

Adiciona uma função únicalistener para o evento com o nome eventName. Da próxima vez eventName que for acionado, este serviço de escuta é removido e, em seguida, invocado.

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

Devolve uma referência ao , para que as EventEmitterchamadas possam ser encadeadas.

Por predefinição, os serviços de escuta de eventos são invocados pela ordem em que são adicionados. O emitter.prependOnceListener() método pode ser utilizado como alternativa para adicionar o serviço de escuta de eventos ao início da matriz de serviços de escuta.

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 serviços de escuta do evento com o nome eventName. Não são efetuadas verificações para ver se o listener já foi adicionado. Múltiplas chamadas que transmitem a mesma combinação de eventName e listener resultarão na adição listener e chamada de várias vezes.

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

Devolve uma referência ao , para que as EventEmitterchamadas possam ser encadeadas.

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

Adiciona uma função únicalistener para o evento com o nome eventName ao início da matriz de serviços de escuta. Da próxima vez eventName que for acionado, este serviço de escuta é removido e, em seguida, invocado.

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

Devolve uma referência ao , para que as EventEmitterchamadas possam ser encadeadas.

rawListeners<K>(string | symbol)

Devolve uma cópia da matriz de serviços de escuta do evento com o nome eventName, incluindo quaisquer wrappers (como os 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 serviços de escuta ou os do especificado eventName.

É uma má prática remover os serviços de escuta adicionados noutro local no código, especialmente quando a EventEmitter instância foi criada por outro componente ou módulo (por exemplo, sockets ou fluxos de ficheiros).

Devolve uma referência ao , para que as EventEmitterchamadas possam ser encadeadas.

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

Remove o especificado listener da matriz de serviço de escuta do evento com o nome eventName.

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

removeListener() irá remover, no máximo, uma instância de um serviço de escuta da matriz do serviço de escuta. Se um único serviço de escuta tiver sido adicionado várias vezes à matriz do serviço de escuta para a especificada eventName, removeListener() tem de ser chamado várias vezes para remover cada instância.

Assim que um evento é emitido, todos os serviços de escuta anexados ao mesmo no momento da emissão são chamados por ordem. Isto implica que qualquer removeListener() chamada ou removeAllListeners()depois de emitir e antes de o último serviço de escuta terminar a execução não irá removê-las deemit() em curso. Os eventos subsequentes comportam-se conforme 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

Uma vez que os serviços de escuta são geridos através de uma matriz interna, chamar isto irá alterar os índices de posição de qualquer serviço de escuta registado após o serviço de escuta ser removido. Isto não afetará a ordem pela qual os serviços de escuta são chamados, mas significa que todas as cópias da matriz do serviço de escuta, conforme devolvido pelo emitter.listeners() método, terão de ser recriadas.

Quando uma única função tiver sido adicionada como processador várias vezes para um único evento (como no exemplo abaixo), removeListener() removerá a instância adicionada mais recentemente. No exemplo, o once('ping') serviço de escuta é 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');

Devolve uma referência ao , para que as EventEmitterchamadas possam ser encadeadas.

setMaxListeners(number)

Por predefinição EventEmitter, o s imprime um aviso se forem adicionados mais do que 10 serviços de escuta a um evento específico. Esta é uma predefinição útil que ajuda a encontrar fugas de memória. O emitter.setMaxListeners() método permite que o limite seja modificado para esta instância específica EventEmitter . O valor pode ser definido como Infinity (ou 0) para indicar um número ilimitado de serviços de escuta.

Devolve uma referência ao , para que as EventEmitterchamadas possam ser encadeadas.

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

Detalhes de Método

abandon(Message, Callback<MessageAbandoned>)

function abandon(message: Message, done?: Callback<MessageAbandoned>)

Parâmetros

message

Message

done

Callback<MessageAbandoned>

complete(Message, Callback<MessageCompleted>)

function complete(message: Message, done?: Callback<MessageCompleted>)

Parâmetros

message

Message

done

Callback<MessageCompleted>

reject(Message, Callback<MessageRejected>)

function reject(message: Message, done?: Callback<MessageRejected>)

Parâmetros

message

Message

done

Callback<MessageRejected>

Detalhes do Método Herdado

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

Alias para emitter.on(eventName, listener).

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

Parâmetros

eventName

string | symbol

listener

(args: any[]) => void

Devoluções

Herdado de Receiver.addListener

emit<K>(string | symbol, AnyRest)

Chama de forma síncrona cada um dos serviços de escuta registados para o evento com o nome eventName, pela ordem em que foram registados, transmitindo os argumentos fornecidos para cada um.

Devolve true se o evento tiver serviços de escuta, 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

Devoluções

boolean

Herdado de Receiver.emit

eventNames()

Devolve uma matriz que lista os eventos para os quais o emissor registou serviços de escuta. Os valores na matriz são cadeias 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)[]

Devoluções

(string | symbol)[]

Herdado de Receiver.eventNames

getMaxListeners()

Devolve o valor máximo do serviço de escuta atual para o EventEmitter que está definido por emitter.setMaxListeners(n) ou predefinição como defaultMaxListeners.

function getMaxListeners(): number

Devoluções

number

Herdado de Receiver.getMaxListeners

listenerCount<K>(string | symbol, Function)

Devolve o número de serviços de escuta que escutam o evento com o nome eventName. Se listener for fornecido, devolverá o número de vezes que o serviço de escuta é encontrado na lista de serviços de escuta do evento.

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

Parâmetros

eventName

string | symbol

O nome do evento que está a ser escutado

listener

Function

A função do processador de eventos

Devoluções

number

Herdado de Receiver.listenerCount

listeners<K>(string | symbol)

Devolve uma cópia da matriz de serviços de escuta do evento com o nome 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

Devoluções

Function[]

Herdado de Receiver.listeners

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

Alias para emitter.removeListener().

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

Parâmetros

eventName

string | symbol

listener

(args: any[]) => void

Devoluções

Herdado de Recetor.off

on("errorReceived", (err: Error) => void)

function on(type: "errorReceived", func: (err: Error) => void): ServiceReceiver

Parâmetros

type

"errorReceived"

func

(err: Error) => void

Devoluções

Herdado de Recetor.on

on("message", (msg: Message) => void)

function on(type: "message", func: (msg: Message) => void): ServiceReceiver

Parâmetros

type

"message"

func

(msg: Message) => void

Devoluções

Herdado de Recetor.on

on(string, Function)

function on(type: string, func: Function): ServiceReceiver

Parâmetros

type

string

func

Function

Devoluções

Herdado de Recetor.on

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

Adiciona uma função únicalistener para o evento com o nome eventName. Da próxima vez eventName que for acionado, este serviço de escuta é removido e, em seguida, invocado.

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

Devolve uma referência ao , para que as EventEmitterchamadas possam ser encadeadas.

Por predefinição, os serviços de escuta de eventos são invocados pela ordem em que são adicionados. O emitter.prependOnceListener() método pode ser utilizado como alternativa para adicionar o serviço de escuta de eventos ao início da matriz de serviços de escuta.

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

Parâmetros

eventName

string | symbol

O nome do evento.

listener

(args: any[]) => void

A função de chamada de retorno

Devoluções

Herdado de Recetor.uma vez

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

Adiciona a listener função ao início da matriz de serviços de escuta do evento com o nome eventName. Não são efetuadas verificações para ver se o listener já foi adicionado. Múltiplas chamadas que transmitem a mesma combinação de eventName e listener resultarão na adição listener e chamada de várias vezes.

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

Devolve uma referência ao , para que as EventEmitterchamadas possam ser encadeadas.

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

Parâmetros

eventName

string | symbol

O nome do evento.

listener

(args: any[]) => void

A função de chamada de retorno

Devoluções

Herdado de Receiver.prependListener

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

Adiciona uma função únicalistener para o evento com o nome eventName ao início da matriz de serviços de escuta. Da próxima vez eventName que for acionado, este serviço de escuta é removido e, em seguida, invocado.

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

Devolve uma referência ao , para que as EventEmitterchamadas possam ser encadeadas.

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

Parâmetros

eventName

string | symbol

O nome do evento.

listener

(args: any[]) => void

A função de chamada de retorno

Devoluções

Herdado de Receiver.prependOnceListener

rawListeners<K>(string | symbol)

Devolve uma cópia da matriz de serviços de escuta do evento com o nome eventName, incluindo quaisquer wrappers (como os 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

Devoluções

Function[]

Herdado de Receiver.rawListeners

removeAllListeners(string | symbol)

Remove todos os serviços de escuta ou os do especificado eventName.

É uma má prática remover os serviços de escuta adicionados noutro local no código, especialmente quando a EventEmitter instância foi criada por outro componente ou módulo (por exemplo, sockets ou fluxos de ficheiros).

Devolve uma referência ao , para que as EventEmitterchamadas possam ser encadeadas.

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

Parâmetros

eventName

string | symbol

Devoluções

Herdado de Receiver.removeAllListeners

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

Remove o especificado listener da matriz de serviço de escuta do evento com o nome eventName.

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

removeListener() irá remover, no máximo, uma instância de um serviço de escuta da matriz do serviço de escuta. Se um único serviço de escuta tiver sido adicionado várias vezes à matriz do serviço de escuta para a especificada eventName, removeListener() tem de ser chamado várias vezes para remover cada instância.

Assim que um evento é emitido, todos os serviços de escuta anexados ao mesmo no momento da emissão são chamados por ordem. Isto implica que qualquer removeListener() chamada ou removeAllListeners()depois de emitir e antes de o último serviço de escuta terminar a execução não irá removê-las deemit() em curso. Os eventos subsequentes comportam-se conforme 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

Uma vez que os serviços de escuta são geridos através de uma matriz interna, chamar isto irá alterar os índices de posição de qualquer serviço de escuta registado após o serviço de escuta ser removido. Isto não afetará a ordem pela qual os serviços de escuta são chamados, mas significa que todas as cópias da matriz do serviço de escuta, conforme devolvido pelo emitter.listeners() método, terão de ser recriadas.

Quando uma única função tiver sido adicionada como processador várias vezes para um único evento (como no exemplo abaixo), removeListener() removerá a instância adicionada mais recentemente. No exemplo, o once('ping') serviço de escuta é 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');

Devolve uma referência ao , para que as EventEmitterchamadas possam ser encadeadas.

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

Parâmetros

eventName

string | symbol

listener

(args: any[]) => void

Devoluções

Herdado de Receiver.removeListener

setMaxListeners(number)

Por predefinição EventEmitter, o s imprime um aviso se forem adicionados mais do que 10 serviços de escuta a um evento específico. Esta é uma predefinição útil que ajuda a encontrar fugas de memória. O emitter.setMaxListeners() método permite que o limite seja modificado para esta instância específica EventEmitter . O valor pode ser definido como Infinity (ou 0) para indicar um número ilimitado de serviços de escuta.

Devolve uma referência ao , para que as EventEmitterchamadas possam ser encadeadas.

function setMaxListeners(n: number): ServiceReceiver

Parâmetros

n

number

Devoluções

Herdado de Receiver.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 Receiver.__@captureRejectionSymbol@115