我正在尝试将无线控制器与我的代码一起使用。我正在使用节点HID,当前正在尝试编写一些代码,这些代码将在第一次按下按钮时输出“ Tap”,而在第二次按下时输出“ untap”。我面临的唯一问题是,一次轻击会触发两个if语句,因为侦听器事件刷新的速度太快了。有什么办法可以减慢它的速度吗?
device.on ("data", function (data){
if (data[4]===31&&(!pressed)){
device.pause();
console.log("tap");
pressed=true;
}
if (data[4]===31&&(pressed)){
device.pause();
console.log("untap");
pressed=false;
}
device.resume();
console.log(data[4]);
console.log(pressed);
});
(按下的是早先声明的变量)
改为使用else if
。目前,如果满足第一个pressed
,则将true
设置为if
,但是如果满足第一个if
,则下一个
if (data[4]===31&&(pressed)){
将是true
,因为您同时将data[4] === 31
和都设置为pressed
为true
:
if (data[4]===31&&(!pressed)){
device.pause();
console.log("tap");
pressed=true;
}
else if (data[4]===31&&(pressed)){
device.pause();
console.log("untap");
pressed=false;
}