Sha*_*baz 8 javascript node.js
假设我正在创建自己的模块,它位于"网络"模块的顶部.我的模块有自己的事件,但也允许客户端侦听tcp连接发出的网络事件:
mymod.on('myevent',...); // my event
mymod.on('connect',...); // net event
mymod.on('end',...); // net event
Run Code Online (Sandbox Code Playgroud)
现在我正在做以下事情
...
tcp.on('connect',function(){ self.emit('connect');});
tcp.on('end',function(){ self.emit('end');});
...
Run Code Online (Sandbox Code Playgroud)
我是否有更惯用的方式将所有事件(或事件的子集)从一个模块转发到另一个模块的客户端?
我希望这种情况一直都会出现,所以我想以最干净的方式做到这一点.
我过去所做的就是处理该newListener事件。在将一个处理程序附加到我的班级之前,我不会费心附加处理程序。然后,当它出现时,我将其附加到基类。
this.on('newListener', function (event, listener) {
baseClassInstance.on(event, listener);
})
Run Code Online (Sandbox Code Playgroud)
您可以通过首先检查参数来过滤哪些事件被传递event。
如果您必须删除侦听器,请小心。在这些情况下,这可能不是最好的解决方案。
| 归档时间: |
|
| 查看次数: |
1393 次 |
| 最近记录: |