写了一个类文件,继承了EventEmitter。 然后再此文件里面 用emit 和 on 可以触发。
但是我把这个类 export出去。 在socketio 的on事件中,调用这个类的一个方法,这个方法执行完毕后会emit一个事件,我在socketio的on回调函数里面 , on这个emit的事件。但是这个时间没有触发。这个是什么情况??
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类的类。
desInstance.on(“encryptData”, function(data) {
console.log(‘encryptData data: "’ + data + ‘"’); //此回调不会被执行
});
desInstance.desEncrypt(param);
先绑事件再调用 。
@myhirra 噢 搞错了。没注意。刚写node 还是很难适应呀。。