删除 Node.js 中约翰尼五号事件的侦听器
Remove listener for Johnny-Five event in Node.js
我正在使用 Johnny-Five 与被动红外探测器和 C.H.I.P 一起工作。 Linux,单板机。总的来说一切正常。
但是假设我定义了一个图钉和一个按钮,如下所示:
let button = new five.Button({
pin: 'XIO-P0'
});
let pir = new five.Pin({
pin: 'PWM0',
type: 'digital',
mode: 0
});
有时我决定像这样听读事件和按钮按下:
button.on('press', function() {
console.log('Button pressed');
});
pir.read(function (error, value) {
if (error) {
console.log('Error:', error);
} else {
console.log('Pin:', value);
}
});
如何告诉强尼五我不想再听那个活动了?在我的一生中,我无法在文档或 Google.
上的任何地方找到它。
如有任何帮助,我们将不胜感激。
所以事实证明 Button 扩展了 Node.js EventEmitter 对象。因此,您可以使用与之关联的 removeListener()
和 removeAllListeners()
方法。但它似乎要求您将回调定义为非匿名函数,以便您可以引用它们进行删除。
button.on('press', buttonPressCallback);
function buttonPressCallback() {
console.log('Button pressed');
}
Pin.read()
功能不一样,所以如果你想用一样的方式杀死它,你需要使用Pin的事件接口。有 high
、low
和 data
事件。数据进行所有更改。
pir.on('high', pinHighCallback);
pir.on('low', pinLowCallback);
function pinHighCallback() {
console.log('Pin: HIGH');
}
function PinLowCallback() {
console.log('Pin: LOW');
}
所以现在要删除这些侦听器,我们只需调用以下内容:
button.removeListener('press', buttonPressCallback);
pin.removeListener('high', pinHighCallback);
pin.removeListener('low', pinLowCallback);
我正在使用 Johnny-Five 与被动红外探测器和 C.H.I.P 一起工作。 Linux,单板机。总的来说一切正常。
但是假设我定义了一个图钉和一个按钮,如下所示:
let button = new five.Button({
pin: 'XIO-P0'
});
let pir = new five.Pin({
pin: 'PWM0',
type: 'digital',
mode: 0
});
有时我决定像这样听读事件和按钮按下:
button.on('press', function() {
console.log('Button pressed');
});
pir.read(function (error, value) {
if (error) {
console.log('Error:', error);
} else {
console.log('Pin:', value);
}
});
如何告诉强尼五我不想再听那个活动了?在我的一生中,我无法在文档或 Google.
上的任何地方找到它。如有任何帮助,我们将不胜感激。
所以事实证明 Button 扩展了 Node.js EventEmitter 对象。因此,您可以使用与之关联的 removeListener()
和 removeAllListeners()
方法。但它似乎要求您将回调定义为非匿名函数,以便您可以引用它们进行删除。
button.on('press', buttonPressCallback);
function buttonPressCallback() {
console.log('Button pressed');
}
Pin.read()
功能不一样,所以如果你想用一样的方式杀死它,你需要使用Pin的事件接口。有 high
、low
和 data
事件。数据进行所有更改。
pir.on('high', pinHighCallback);
pir.on('low', pinLowCallback);
function pinHighCallback() {
console.log('Pin: HIGH');
}
function PinLowCallback() {
console.log('Pin: LOW');
}
所以现在要删除这些侦听器,我们只需调用以下内容:
button.removeListener('press', buttonPressCallback);
pin.removeListener('high', pinHighCallback);
pin.removeListener('low', pinLowCallback);