Object has no 'on' method (EventEmitter in node)
My example:
var Common= {
http: require("http"),
url : require("url"),
fs : require("fs"),
util : require("util"),
event : require("events")
}
var someobj ={name:'sasha'}
Common.util.inherits(someobj,Common.event.EventEmitter)
someobj.on('onparse',function(data){
console.log(data + this.name);
});
someobj.emit('onparse','super log from');
Then in the console error: Object has no method
Help me please.
+3
source to share
1 answer
According to the documentation , the method inherits
expects constructor and super constructor parameters. You have provided an object and a super constructor.
Please note that the following is untested:
var Common= {
http: require("http"),
url : require("url"),
fs : require("fs"),
util : require("util"),
event : require("events")
}
// Create a constructor function for the object
var SomeClass = function(name) {
this.name = name;
Common.event.EventEmitter.call(this);
}
// Inherit the EventEmitter prototype
Common.util.inherits(SomeClass, Common.event.EventEmitter);
// Create the new object
var someobj = new SomeClass('Sasha')
someobj.on('onparse', function(data){
console.log(data + this.name);
});
someobj.emit('onparse', 'super log from');
+4
source to share