如何解决如何防止 NodeJS 中的密钥重复
我正在用 NodeJS 编写一个命令行实用程序,我想从用户那里收集原始键盘输入。但是,我想防止他们长按某个键并重复该键直到他们释放该键。每次按键只能返回一个字符,而不管按键被按下多长时间。
const readline = require('readline')
readline.emitKeypressEvents(process.stdin)
process.stdin.setRawMode(true)
process.stdin.on('keypress',(str,key) => {
process.stdout.write(str)
// more code
if (key.ctrl && key.name === 'c') {
process.exit(0)
}
})
如何防止密钥重复?
解决方法
也许您可以存储该值并设置计时器以在按下相同键时解锁。例如:
const readline = require("readline");
readline.emitKeypressEvents(process.stdin);
process.stdin.setRawMode(true);
let lastKey = "";
let lastKeyTime = 0;
process.stdin.on("keypress",(str,key) => {
// Check same key with time 0.6 sec
if (lastKey == key.sequence && new Date().getTime() - lastKeyTime < 600) {
lastKeyTime = new Date().getTime();
return;
}
// Print
process.stdout.write(str);
// Add data
lastKey = key.sequence;
lastKeyTime = new Date().getTime();
if (key.ctrl && key.name === "c") {
process.exit(0);
}
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。