如何缓慢完成节点JS事件侦听器?

问题描述 投票:0回答:1

我正在尝试将无线控制器与我的代码一起使用。我正在使用节点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);

    });

(按下的是早先声明的变量)

node.js arduino hid
1个回答
0
投票

改为使用else if。目前,如果满足第一个pressed,则将true设置为if,但是如果满足第一个if,则下一个

if (data[4]===31&&(pressed)){

将是true,因为您同时将data[4] === 31 都设置为pressedtrue

    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;

    }
© www.soinside.com 2019 - 2024. All rights reserved.