Emitter in Node

From Logic Wiki
Revision as of 10:08, 15 September 2018 by AliIybar (Talk | contribs)

Jump to: navigation, search

Sample Code

const EventEmitter = require('events');
const emitter = new EventEmitter();

//Register a listener 
emitter.on('messageLogged', function(){
   console.log('Listener called');
});

// Raise an event 
emitter.emit('messageLogged');

Registration must come before raising

Event Arguments

emitter.on('messageLogged', function(arg){
   console.log('Listener called', arg);
});

emitter.emit('messageLogged', {id:1, url:'http://...'});

Arrow Function

emitter.on('messageLogged',(arg) => {
   console.log('Listener called', arg);
});

emitter.emit('messageLogged', {id:1, url:'http://...'});

Using in a Class

Logger.js

const EventEmitter = require('events');
class Logger extends EventEmitter {

  log(message){
     console.log(message);
  }
};

module.exports = Logger;

App.js

const EventEmitter = require('events');
const logger = new Logger();

//Register a listener 
logger.on('messageLogged', (arg) => {
   console.log('Listener called', arg);
});
logger.log('message');