如何在while循环中检查事件?

Zac*_*112 1 javascript events while-loop

我正在尝试创建一个可以调用一个函数的系统,该函数将等到按下某个键后该函数才结束,因此暂停程序直到按下下一个键。

我尝试在while循环中使用变量,但是,如果我尝试在keydown事件上更改该变量,则在循环运行时它不会改变。

    var x = true;
    myFunction (event) {
        x = false;
    }
    document.addEventListener("keydown", myFunction);
    function wait () {
        x = true;
        while (x);
    }
    wait();
Run Code Online (Sandbox Code Playgroud)

这不会返回任何错误消息,但是,程序在敲键后再也不会继续。

Dun*_*ker 5

恐怕这不是您真正编写JavaScript的方式。您正在执行的操作称为“阻止”,而Javascript则永远都不应阻止。如果要处理诸如按键之类的事件,则应使用回调,然后从回调内部继续执行程序。

所以:

function myFunction (event) {
    //write the rest of your program in here
}
document.addEventListener("keydown", myFunction);

//you don't need anything down here
Run Code Online (Sandbox Code Playgroud)