我在Windows上的终端中捕获Raw键盘输入时遇到问题。这让我抓狂,因为我知道我用较旧版本的nodejs(一年+前)实现了这个功能
使用最新版本的 NodeJS (目前正在使用 4.2.2 ),捕获输入似乎有些错误 ..除非我遗漏了什么?
我正在投放的内容:
stdin = process.stdin;
stdin.on('data', function (data) {
if (data == '\u0003') { process.exit(); }
process.stdout.write('Captured Key : ' + data + "\n");
});
stdin.setEncoding('utf8');
stdin.setRawMode(true);
stdin.resume();
我的期望:
运行后,程序应立即响应按下的任何键,然后输出:
Captured Key : T
Captured Key : E
Captured Key : S
. . . etc
我得到了什么:
运行程序后,第一个键盘输入就像在Raw中捕获 NOT 一样,它被捕获并显示在屏幕上。
然后当我按 ENTER 键时,我刚输入的文本被推送到处理函数,然后程序将接受 raw中的进一步输入正如所料。
看起来好像程序需要使用ENTER按键来启动正确的原始模式输入模式?
pic相关 :我输入了TEST(ENTER)。然后程序按预期工作。
任何人都知道这是什么一回事?我找不到任何东西。此外,我不想使用任何外部库。谢谢!