O emissor de evento da Node.js
Como trabalhar com eventos personalizados na Node.js
Se trabalhaste com a JavaScript no navegador, sabes o quanto de interação do utilizador é manipulada através de eventos: cliques de rato, pressões de botão de teclado, reações aos movimentos do rato, e por aí fora.
No lado do backend, a Node.js oferece-nos a opção para construir um sistema parecido usando o módulo de events
.
Este módulo, em particular, oferece a classe EventEmitter
, que usaremos para manipular os nossos eventos.
Tu o inicializas usando:
Este objeto expõe, entre muito outros, os métodos on
e emit
.
emit
é usado para acionar um evento.on
é usado para adicionar uma função de resposta que será executara quando o evento for acionado.
Por exemplo, vamos criar um evento start
, e por uma questão de fornecer uma amostra, reagimos a isto apenas registando na consola:
Quando executamos:
a função do manipulador de evento é acionado, e recebemos o registo da consola.
Tu podes passar argumentos para o manipulador de evento passando-os como argumentos adicionais ao emit()
:
Vários argumentos:
O objeto EventEmitter
também expõe vários outros métodos para interagir com os eventos, como:
once()
: adiciona um ouvinte de uma vez.removeListener()
/off()
: remove um ouvinte de evento de um evento.removeAllListeners()
: remove todos os ouvintes para um evento.
Tu podes ler mais sobre estes métodos na documentação oficial.