CNode

emit 之后 on不触发。 什么情况?

问答
Wwdragon1983发布于11 年前最后回复11 年前3 回复4863 浏览0 收藏

写了一个类文件,继承了EventEmitter。 然后再此文件里面 用emit 和 on 可以触发。

但是我把这个类 export出去。 在socketio 的on事件中,调用这个类的一个方法,这个方法执行完毕后会emit一个事件,我在socketio的on回调函数里面 , on这个emit的事件。但是这个时间没有触发。这个是什么情况??

查看回复

回复 (3)

W
wdragon1983#1·11 年前

var desInstance ={}; function Des() {//新建一个类 events.EventEmitter.call(this); } util.inherits(Des, events.EventEmitter);//使这个类继承EventEmitter

function getDesInstance(){ if(desInstance instanceof Des){ return desInstance; } desInstance = new Des(); return desInstance; }

Des.prototype.desEncrypt = function (param) { ... this.emit("encryptData", ciph);//在此触发名为"encryptData"事件 }

exports.getDesInstance=getDesInstance;

以上是这个继承emit类的类。

var des = require('./des'); var desInstance = des.getDesInstance();

socket.on('test', function (data) { logger.info(' recv pdu ', data); ... desInstance.desEncrypt(param); desInstance.on("encryptData", function(data) { console.log('encryptData data: "' + data + '"'); //此回调不会被执行 }) }); 以上是这个是 用emit类的类。

M
myhirra#2·11 年前
desInstance.on(“encryptData”, function(data) {
	console.log(‘encryptData data: "’ + data + ‘"’); //此回调不会被执行
});
desInstance.desEncrypt(param);

先绑事件再调用 。

W
wdragon1983#3·11 年前

@myhirra 噢 搞错了。没注意。刚写node 还是很难适应呀。。

参与回复
登录后即可参与回复。登录