Skip to content

Latest commit

 

History

History
141 lines (92 loc) · 3.48 KB

42.modulo_events_do_node.md

File metadata and controls

141 lines (92 loc) · 3.48 KB

O módulo events do Node.js

Índice

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 é adicionado
  • removeListener quando um listener é removido

Aqui está uma descrição detalhada dos métodos mais úteis:

emitter.addListener()

Alias para emitter.on().

emitter.emit()

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"

emitter.eventNames()

Retorna um array de strings que representam os eventos registrados no objeto EventEmitter atual:

door.eventNames();

emitter.getMaxListeners()

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

emitter.listenerCount()

Obtenha a contagem de listeners do evento passado com parâmetro:

door.listenerCount('open');

emitter.listeners()

Obtenha um array de listeners do evento passado como parâmetro:

door.listeners('open');

emitter.off()

Alias para emitter.removeListener() adicionado no Node.js 10.

emitter.on()

Adiciona uma função de calback que é chamado quando um evento é emitido.

uso:

door.on('open', () => {
  console.log('Door was opened');
});

emitter.once()

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

emitter.prependListener()

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.

emitter.prependOnceListener()

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.

emitter.removeAllListener()

Remove todos os listeners de um objeto EventEmitter ouvindo um evento específico:

door.removeAllListener('open');

emitter.removeListener()

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

emitter.setMaxListeners()

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