首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >删除Node.js中约翰尼-五个事件的侦听器

删除Node.js中约翰尼-五个事件的侦听器
EN

Stack Overflow用户
提问于 2017-03-09 17:15:40
回答 1查看 605关注 0票数 0

我用约翰尼-5和被动红外探测器和C.H.I.P.Linux单板电脑工作。总的来说一切都很好。

但是假设我定义了一个别针和一个按钮,就像这样:

代码语言:javascript
运行
复制
let button = new five.Button({
  pin: 'XIO-P0'
});

let pir = new five.Pin({
  pin: 'PWM0',
  type: 'digital',
  mode: 0
});

在某种程度上,我决定听一听这样的事件和按钮:

代码语言:javascript
运行
复制
button.on('press', function() {
  console.log('Button pressed');
});

pir.read(function (error, value) {
  if (error) {
    console.log('Error:', error);
  } else {
    console.log('Pin:', value);
  }
});

我该怎么告诉约翰尼-五我不想再听那件事了?在我的生活中,我找不到它在文档或谷歌上提到的任何地方。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-10 17:37:49

因此,Button扩展了Node.js EventEmitter对象。因此,您可以使用与其关联的removeListener()removeAllListeners()方法。但似乎需要将回调定义为非匿名函数,以便可以引用它们进行删除。

代码语言:javascript
运行
复制
button.on('press', buttonPressCallback);

function buttonPressCallback() {
  console.log('Button pressed');
}

Pin.read()函数的工作方式不同,所以如果您想要以同样的方式关闭它,就需要为Pin使用事件接口。有highlowdata事件。数据会做所有的改变。

代码语言:javascript
运行
复制
pir.on('high', pinHighCallback);

pir.on('low', pinLowCallback);

function pinHighCallback() {
  console.log('Pin: HIGH');
}

function PinLowCallback() {
  console.log('Pin: LOW');
}

因此,现在要删除这些侦听器,我们只需调用以下命令:

代码语言:javascript
运行
复制
button.removeListener('press', buttonPressCallback);
pin.removeListener('high', pinHighCallback);
pin.removeListener('low', pinLowCallback);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42701544

复制
相关文章

相似问题

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