AmqpWs class
Classe de transporte usada pelo cliente de serviço para se conectar ao hub IoT do Azure usando o protocolo AMQP em websockets seguros. Essa classe não deve ser usada diretamente e, em vez disso, ser passada para um dos métodos de Client fábrica: fromConnectionString ou fromSharedAccessSignature.
- Extends
Propriedades herdadas
capture |
Valor: booliano Altere a opção padrão |
capture |
Valor: Veja como escrever um personalizado |
default |
Por padrão, um máximo de Tenha cuidado ao definir o Este não é um limite difícil. A
O O aviso emitido pode ser inspecionado com |
error |
Esse símbolo deve ser usado para instalar um ouvinte apenas para eventos de monitoramento Instalar um ouvinte usando esse símbolo não altera o comportamento depois que um |
Métodos herdados
add |
Escuta uma vez o Ouvir o Essa API permite usar Retorna um descartável para que ele possa ser desconscrito com mais facilidade.
|
add |
Alias para |
emit<K>(string | symbol, Any |
Chama de forma síncrona cada um dos ouvintes registrados para o evento chamado Retorna
|
event |
Retorna uma matriz listando os eventos para os quais o emissor registrou ouvintes. Os valores na matriz são cadeias de caracteres ou
|
get |
Retorna uma cópia da matriz de ouvintes para o evento chamado Para Para
|
get |
Retorna o valor máximo atual do ouvinte para o |
get |
Retorna a quantidade máxima de ouvintes definida no momento. Para Para
|
listener |
Um método de classe que retorna o número de ouvintes para o determinado
|
listener |
Retorna o número de ouvintes que escutam o evento chamado |
listeners<K>(string | symbol) | Retorna uma cópia da matriz de ouvintes para o evento chamado
|
off<K>(string | symbol, (args: any[]) => void) | Alias para |
on(Event |
Retorna um Um
|
on<K>(string | symbol, (args: any[]) => void) | Adiciona a
Retorna uma referência ao , para Por padrão, os ouvintes de eventos são invocados na ordem em que são adicionados. O
|
once(Event |
Cria um Esse método é intencionalmente genérico e funciona com a interface EventTarget da plataforma Web, que não tem semântica de evento especial
O tratamento especial do
Um
|
once(Event |
|
once<K>(string | symbol, (args: any[]) => void) | Adiciona uma função única
Retorna uma referência ao , para Por padrão, os ouvintes de eventos são invocados na ordem em que são adicionados. O
|
prepend |
Adiciona a
Retorna uma referência ao , para |
prepend |
Adiciona uma função única
Retorna uma referência ao , para |
raw |
Retorna uma cópia da matriz de ouvintes para o evento chamado
|
remove |
Remove todos os ouvintes ou os do especificado É uma prática inadequada remover ouvintes adicionados em outro lugar no código, especialmente quando a Retorna uma referência ao , para |
remove |
Remove o especificado
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
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 Quando uma única função tiver sido adicionada como um manipulador várias vezes para um único evento (como no exemplo abaixo),
Retorna uma referência ao , para |
set |
Por padrão Retorna uma referência ao , para |
set |
|
[capture |
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 deAmqp.captureRejections
captureRejectionSymbol
Valor: Symbol.for('nodejs.rejection')
Veja como escrever um personalizado rejection handler
.
static captureRejectionSymbol: typeof captureRejectionSymbol
Valor da propriedade
typeof captureRejectionSymbol
Herdado deAmqp.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 , type
e 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 deAmqp.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 deAmqp.errorMonitor
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, pois 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 facilita a remoção de ouvintes.
Essa API permite usar AbortSignal
s 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 desconscrito com mais facilidade.
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 deAmqp.addAbortListener
addListener<K>(string | symbol, (args: any[]) => void)
Alias para emitter.on(eventName, listener)
.
function addListener<K>(eventName: string | symbol, listener: (args: any[]) => void): AmqpWs
Parâmetros
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Retornos
Herdado deAmqp.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.
Retorna 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 deAmqp.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 Symbol
s.
import { EventEmitter } from 'node:events';
const myEE = new EventEmitter();
myEE.on('foo', () => {});
myEE.on('bar', () => {});
const sym = Symbol('symbol');
myEE.on(sym, () => {});
console.log(myEE.eventNames());
// Prints: [ 'foo', 'bar', Symbol(symbol) ]
function eventNames(): (string | symbol)[]
Retornos
(string | symbol)[]
Herdado deAmqp.eventNames
getEventListeners(EventEmitter<DefaultEventMap> | EventTarget, string | symbol)
Retorna uma cópia da matriz de ouvintes para o evento chamado eventName
.
Para EventEmitter
s, isso se comporta exatamente da mesma forma que chamar .listeners
no emissor.
Para EventTarget
s, 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 deAmqp.getEventListeners
getMaxListeners()
Retorna o valor máximo atual do ouvinte para o EventEmitter
que é definido por emitter.setMaxListeners(n)
ou o padrão é defaultMaxListeners.
function getMaxListeners(): number
Retornos
number
Herdado deAmqp.getMaxListeners
getMaxListeners(EventEmitter<DefaultEventMap> | EventTarget)
Retorna a quantidade máxima de ouvintes definida no momento.
Para EventEmitter
s, isso se comporta exatamente da mesma forma que chamar .getMaxListeners
no emissor.
Para EventTarget
s, 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 deAmqp.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 deAmqp.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 dos 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 deAmqp.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 deamqp.listeners
off<K>(string | symbol, (args: any[]) => void)
Alias para emitter.removeListener()
.
function off<K>(eventName: string | symbol, listener: (args: any[]) => void): AmqpWs
Parâmetros
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Retornos
Herdado deAmqp.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 doAmqp.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 EventEmitter
que 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): AmqpWs
Parâmetros
- eventName
-
string | symbol
O nome do evento.
- listener
-
(args: any[]) => void
A função de retorno de chamada
Retornos
Herdado doAmqp.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 especificado.
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 do 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 deAmqp.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 deAmqp.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 EventEmitter
que 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): AmqpWs
Parâmetros
- eventName
-
string | symbol
O nome do evento.
- listener
-
(args: any[]) => void
A função de retorno de chamada
Retornos
Herdado deAmqp.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 EventEmitter
que as chamadas possam ser encadeadas.
function prependListener<K>(eventName: string | symbol, listener: (args: any[]) => void): AmqpWs
Parâmetros
- eventName
-
string | symbol
O nome do evento.
- listener
-
(args: any[]) => void
A função de retorno de chamada
Retornos
Herdado deAmqp.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 EventEmitter
que as chamadas possam ser encadeadas.
function prependOnceListener<K>(eventName: string | symbol, listener: (args: any[]) => void): AmqpWs
Parâmetros
- eventName
-
string | symbol
O nome do evento.
- listener
-
(args: any[]) => void
A função de retorno de chamada
Retornos
Herdado deAmqp.prependOnceListener
rawListeners<K>(string | symbol)
Retorna uma cópia da matriz de ouvintes para o evento chamado eventName
, incluindo todos os 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 deAmqp.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 arquivos).
Retorna uma referência ao , para EventEmitter
que as chamadas possam ser encadeadas.
function removeAllListeners(eventName?: string | symbol): AmqpWs
Parâmetros
- eventName
-
string | symbol
Retornos
Herdado deAmqp.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 EventEmitter
que as chamadas possam ser encadeadas.
function removeListener<K>(eventName: string | symbol, listener: (args: any[]) => void): AmqpWs
Parâmetros
- eventName
-
string | symbol
- listener
-
(args: any[]) => void
Retornos
Herdado deAmqp.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 EventEmitter
que as chamadas possam ser encadeadas.
function setMaxListeners(n: number): AmqpWs
Parâmetros
- n
-
number
Retornos
Herdado deAmqp.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 deAmqp.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 deAmqp.[ captureRejectionSymbol]