我正在编写一个套接字类,它应该在连接套接字时发出'socketConnected'事件。为此我已经这样做了。
Socket.prototype.connectEmitter = function(client){
console.log("Connected");
console.log(client);
this.emit('socketConnected',client);
}
Socket.prototype.connect = function(){
var client = net.connect({port:this.remotePort, host:this.remoteIp},function(){
this.connectEmitter(client);
});
client.on('data',this.dataEmitter);
client.on('end',function(){
console.log("Reading End");
});
}
但是当我运行这段代码时,它说套接字对象没有connectEmitter方法。 我在哪里做错了。(我没有在这里发布整个代码。我从util继承了eventemitter)
答案 0 :(得分:2)
不确定细节但是:
var client = net.connect({port:this.remotePort, host:this.remoteIp},function(){
this.connectEmitter(client);
});
在这种情况下,“这个”不是你所期望的那样。因为它在回调函数中使用。
尝试使用
var instance = this;
var client = net.connect({port:this.remotePort, host:this.remoteIp},function(){
instance.connectEmitter(client);
});
问候