Javascript keyup не срабатывает при остановке в точке останова для keydown - PullRequest
0 голосов
/ 05 марта 2020

Я хочу сохранить клавиши «вниз» в моем приложении. Я делаю это таким образом, что я помещаю клавиши «вниз» в массив при keydown и удаляю их при keyup.

Теперь проблема возникает, когда я отлаживаю с контрольными точками, которая останавливается после keydown, но до keyup. Keyup никогда не запускается, и мои клавиши «вниз» будут зарегистрированы навсегда, нарушая логику c моего приложения.

Псевдокод для объяснения:

<html>
    <script>
        const keys = new Set();

        window.addEventListener("keydown", (e) => {
            keys.add(e.keyCode)
            debugger; // the app stops at this breakpoint when developer tools is open 
        });

        window.addEventListener("keyup", (e) => {
            keys.delete(e.keyCode) // this does not run when stopping at breakpoint
        });
    </script>
</html>

Как бы вы гарантировали, что keys Набор всегда отражает ключи, которые на самом деле вниз.

...