首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node.js群集工作器:关闭事件

Node.js群集工作器:关闭事件
EN

Stack Overflow用户
提问于 2017-07-24 12:49:16
回答 2查看 1K关注 0票数 2

请考虑以下node.js群集配置。如何打开off回调以防止进一步的消息回调?碰巧没有off方法。我必须用一个新的回调更新回调,似乎所有旧的回调也都被触发了。

代码语言:javascript
复制
     cluster.on('fork', worker => {
        worker.on('message', msg => {// Do something...})
      })
EN

回答 2

Stack Overflow用户

发布于 2017-07-24 13:11:23

.on()的对立面是.removeListener(),因为.on()只是.addListener()的别名。为什么他们添加.on()作为别名,而不添加.off()作为别名,我真的不知道(对我来说似乎是合乎逻辑的)。

但是,为了能够使用removeListener()删除单个侦听器,您需要对最初附加的函数进行函数引用。所以,你需要保存它:

代码语言:javascript
复制
 cluster.on('fork', worker => {
     function msgHandler(msg) {
         // process message
     }

     // add event handler
     worker.on('message', msgHandler);

     // then, sometime later, to remove the event handler
     worker.removeListener('message', msgHandler);
 });

如果您只想删除给定事件的所有事件侦听器,则不必保存以前的函数引用:

代码语言:javascript
复制
 cluster.on('fork', worker => {
     worker.on('message', msg => {// Do something...})

     // some time later, remove all listeners for a particular message
     worker.removeAllListeners('message');
 });

相关答案:What is the difference between addListener(event, listener) and on(event, listener) method in node.js?

票数 5
EN

Stack Overflow用户

发布于 2017-07-24 12:56:45

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45272812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档