A continuación se muestra un ejemplo funcional de EventEmitters.
hubiera esperado algo asi
const EventEmitter = require('events'); class Logger extends EventEmitter { emitter = New EventEmitter(); // <---- log(msg) { console.log(msg); emitter.emit('msgLogger', {id: 1, val: 2}); // <--- }; }; En la implementación correcta, no entiendo cómo se comparte la instancia de EventEmitter , ya que no veo New EventEmitter() ninguna parte.
El hecho de que una clase requiera un módulo no la convierte en una instancia, ¿verdad?
aplicación.js
const EventEmitter = require('events'); const Logger = require('./Logger'); const logger = new Logger(); logger.on('msgLogger', (arg) => { console.log('Listener called', arg); }); logger.log('Triggered');Registrador.js
const EventEmitter = require('events'); class Logger extends EventEmitter { log(msg) { console.log(msg); this.emit('msgLogger', {id: 1, val: 2}); }; }; module.exports = Logger;