Difference between revisions of "Emitter in Node"
From Logic Wiki
(→App.js) |
|||
| (3 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
[[Category:Node.js]] | [[Category:Node.js]] | ||
| − | + | == Sample Code == | |
<pre class="brush:js;"> | <pre class="brush:js;"> | ||
const EventEmitter = require('events'); | const EventEmitter = require('events'); | ||
| Line 33: | Line 33: | ||
emitter.emit('messageLogged', {id:1, url:'http://...'}); | 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
Contents
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');