How to create an event for the class:
You have to inherite fro events.EventEmitter to be able to emit and handle event
EventEmitter have on and emit method for handling events
on and addListener are basically the same
emitter.emit(event, [arg1], [arg2], [...])
Execute each of the listeners in order with the supplied arguments.
emitter.on(event, listener)
Adds a listener to the end of the listeners array for the specified event.
var util = require("util"); //util defines inherite
var events = require("events");
//create new class
var MyStream = function(){
events.EventEmitter.call(this);
}
//inherites events.EventEmitter
util.inherits(MyStream, events.EventEmitter);
//write method emits data event
MyStream.prototype.write = function(data){
this.emit( "data", data );
}
//create new instance
var stream = new MyStream();
console.log( stream instanceof events.EventEmitter);//true
stream.on( "data", function( data){
//event listener
console.log( 'Received data: "' + data + '"' );
})
stream.write("It works!"); //Received data: "It works!"