- emitter.addListener()
- emitter.emit()
- emitter.eventNames()
- emitter.getMaxListeners()
- emitter.listenerCount()
- emitter.listeners()
- emitter.off()
- emitter.on()
- emitter.once()
- emitter.prependListener()
- emitter.prependOnceListener()
- emitter.removeAllListeners()
- emitter.removeListener()
- emitter.setMaxListeners()
O módulo events
nos fornece a classe EventEmitter, que é fundamental para trabalhar com eventos em Node.js.
const EventEmitter = require('events');
const door = new EventEmitter();
O ouvinte de eventos tem estes eventos integrados:
newListener
quando um listener é adicionadoremoveListener
quando um listener é removido
Aqui está uma descrição detalhada dos métodos mais úteis:
Alias para emitter.on()
.
Emite um evento. Ele chama de forma síncrona todos os event listener na ordem em que foram registrados.
door.emit('slam'); // emitindo o evento "slam"
Retorna um array de strings que representam os eventos registrados no objeto EventEmitter
atual:
door.eventNames();
Obtenha a quantidade máxima de listeners que se pode adicionar a um objeto EventEmitter
, cujo padrão é 10, mas pode ser aumentado ou diminuído usando setMaxListeners()
.
door.getMaxListeners();
Obtenha a contagem de listeners do evento passado com parâmetro:
door.listenerCount('open');
Obtenha um array de listeners do evento passado como parâmetro:
door.listeners('open');
Alias para emitter.removeListener()
adicionado no Node.js 10.
Adiciona uma função de calback que é chamado quando um evento é emitido.
uso:
door.on('open', () => {
console.log('Door was opened');
});
Adiciona uma função de callback que é chamado quando um evento é emitido pela primeira vez após registrá-lo. Este callback só será chamado uma vez, nunca mais.
const EventEmitter = require('events');
const ee = new EventEmitter();
ee.once('my-event', () => {
// função callback chamado uma vez
});
Quando você adiciona um listener usando on
ou addListener
, ele é adicionado por último na fila de listeners e chamado por último. Usando prependListener
, ele é adicionado e chamado antes de outros listeners.
Quando você adiciona um listener usando once
, ele é adicionado por último na fila de listeners e chamado por último. Usando prependOnceListener
, ele é adicionado e chamado antes de outros listeners.
Remove todos os listeners de um objeto EventEmitter
ouvindo um evento específico:
door.removeAllListener('open');
Remove um listener específico. Você pode fazer isso salvando a função de callback em uma variável, quando adicionada, para poder referenciá-la posteriormente:
const doSomething = () => {};
door.on('open', doSomething);
door.removeListener('open', doSomething);
Define a quantidade máxima de listeners que podem ser adicionados a um objeto EventEmitter
, cujo padrão é 10, mas pode ser aumentado ou diminuído.
door.setMaxListeners(50);