Difference between revisions of "Emitter in Node"

From Logic Wiki
Jump to: navigation, search
(Created page with "Category:Node <pre class="brush:js;"> const EventEmitter = require('events'); const emitter = new EventEmitter(); //Register a listener emitter.on('messageLogged', func...")
 
(App.js)
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:Node]]
+
[[Category:Node.js]]
 
+
== Sample Code ==
 
<pre class="brush:js;">
 
<pre class="brush:js;">
 
const EventEmitter = require('events');
 
const EventEmitter = require('events');
Line 13: Line 13:
 
emitter.emit('messageLogged');
 
emitter.emit('messageLogged');
  
 +
</pre>
 +
 +
Registration must come before raising
 +
 +
=== Event Arguments ===
 +
<pre class="brush:js;">
 +
emitter.on('messageLogged', function(arg){
 +
  console.log('Listener called', arg);
 +
});
 +
 +
emitter.emit('messageLogged', {id:1, url:'http://...'});
 +
</pre>
 +
 +
==== Arrow Function ====
 +
<pre class="brush:js;">
 +
emitter.on('messageLogged',(arg) => {
 +
  console.log('Listener called', arg);
 +
});
 +
 +
emitter.emit('messageLogged', {id:1, url:'http://...'});
 +
</pre>
 +
== Using in a Class ==
 +
=== Logger.js ===
 +
<pre class="brush:js;">
 +
const EventEmitter = require('events');
 +
class Logger extends EventEmitter {
 +
 +
  log(message){
 +
    console.log(message);
 +
    this.emit('messageLogged', {id:1, url:http://'});
 +
  }
 +
};
 +
 +
module.exports = Logger;
 +
</pre>
 +
 +
=== App.js ===
 +
<pre class="brush:js;">
 +
const EventEmitter = require('events');
 +
const Logger = require('./logger');
 +
const logger = new Logger();
 +
 +
//Register a listener
 +
logger.on('messageLogged', (arg) => {
 +
  console.log('Listener called', arg);
 +
});
 +
logger.log('message');
 
</pre>
 
</pre>

Latest revision as of 11:57, 12 December 2018

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);
     this.emit('messageLogged', {id:1, url:http://'});
  }
};

module.exports = Logger;

App.js

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

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