Iniciante Fundamentos

Eventos: EventEmitter

O Node.js é orientado a eventos. O módulo events oferece a classe EventEmitter, que permite emitir eventos e reagir a eles com funções ouvintes (listeners).

Criar um emissor

const EventEmitter = require("events");

const emissor = new EventEmitter();

Ouvir e emitir

Use on para ouvir e emit para disparar o evento:

const EventEmitter = require("events");
const emissor = new EventEmitter();

emissor.on("saudacao", (nome) => {
  console.log(`Olá, ${nome}!`);
});

emissor.emit("saudacao", "Ana"); // Olá, Ana!

Vários ouvintes

Você pode registrar mais de um ouvinte para o mesmo evento:

emissor.on("login", () => console.log("Registrando log..."));
emissor.on("login", () => console.log("Enviando e-mail..."));

emissor.emit("login");

Ouvir apenas uma vez

O método once executa o ouvinte só na primeira emissão:

emissor.once("inicio", () => console.log("Só roda uma vez"));
emissor.emit("inicio");
emissor.emit("inicio"); // ignorado