
本文将介绍如何在 JavaScript 类中实现等待特定按键事件触发后再继续执行的功能。我们将探讨使用 Promise 和事件监听器来实现这一目标,并提供两种不同的实现方法,包括使用 Promise 和不使用 Promise 的方法,以便读者可以根据实际情况选择最合适的方案。
这种方法的核心在于使用 Promise 来创建一个异步操作,该操作在接收到特定按键事件后才会 resolve。 通过 addEventListener 监听 keydown 事件,并在事件处理函数中检查按下的键是否为目标键。 如果是,则移除事件监听器并 resolve Promise,从而允许后续代码继续执行。
class ExampleClass {
async waitForKeyPress() {
return new Promise((resolve) => {
const listener = (e) => {
if (e.key === "z") {
window.removeEventListener("keydown", listener);
resolve();
}
};
window.addEventListener("keydown", listener);
});
}
async doStuff() {
await this.waitForKeyPress();
console.log("correct key pressed");
// do stuff
}
}
let exampleObject = new ExampleClass();
exampleObject.doStuff();代码解释:
注意事项:
立即学习“Java免费学习笔记(深入)”;
虽然 Promise 是一种处理异步操作的强大方式,但在某些情况下,您可能希望避免使用 Promise。 下面是使用事件监听器和类绑定的另一种方法:
class ExampleClass {
constructor() {
// 绑定 this,确保 doStuff 函数中的 this 指向类实例
this.doStuff = this.doStuff.bind(this);
window.addEventListener("keydown", this.doStuff);
}
doStuff(e) {
if (e.key !== 'z') return;
window.removeEventListener("keydown", this.doStuff);
console.log("correct key pressed");
// do stuff
}
}
let exampleObject = new ExampleClass();代码解释:
注意事项:
立即学习“Java免费学习笔记(深入)”;
本文介绍了两种在 JavaScript 类中实现等待特定按键事件的方法。 使用 Promise 的方法更加灵活,可以与其他异步操作很好地集成。 不使用 Promise 的方法更加简洁,但需要注意 this 的绑定问题。 选择哪种方法取决于您的具体需求和偏好。
以上就是JavaScript:让类等待特定按键事件的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号