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







All Articles