gpt4 book ai didi

javascript - 在node.js中,如何将模块的所有事件转发给另一个

转载 作者:数据小太阳 更新时间:2023-10-29 04:19:46 28 4
gpt4 key购买 nike

假设我正在创建自己的模块,它位于“net”模块之上。我的模块有自己的事件,但也允许客户端监听由 tcp 连接发出的网络事件:

mymod.on('myevent',...); // my event
mymod.on('connect',...); // net event
mymod.on('end',...); // net event

现在我正在做以下事情

...
tcp.on('connect',function(){ self.emit('connect');});
tcp.on('end',function(){ self.emit('end');});
...

我有没有更惯用的方法来简单地将所有事件(或事件的子集)从一个模块转发到另一个模块的客户端?

我预计这种情况会一直出现,所以我想以最干净的方式进行。

最佳答案

我过去所做的是handle the newListener event .在将一个处理程序附加到我的类(class)之前,我不会费心附加处理程序。然后,当它是时,我将它附加到基类。

this.on('newListener', function (event, listener) {
baseClassInstance.on(event, listener);
})

您可以通过首先检查event 参数来过滤传递哪些事件。

如果您必须移除监听器,请当心。在这些情况下,这可能不是最佳解决方案。

关于javascript - 在node.js中,如何将模块的所有事件转发给另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12557156/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com