gpt4 book ai didi

javascript - 在可读事件监听器回调中读取时,Node 的 process.stdin 可读流记录 Null

转载 作者:行者123 更新时间:2023-11-30 05:36:19 25 4
gpt4 key购买 nike

在不使用 data 事件的情况下,我希望此代码在我按下每个键时记录每个键的 unicode 引用。我不明白为什么我每次都得到 Null

每当我按下键盘上的一个键时,我都会在 process.stdin 上触发一个可读事件,运行一个回调,它允许我从这个可读流中读取数据。那么,为什么它不保存我按键的任何数据?

// nodo.js

function nodo() {
var stdin = process.stdin;
var stdout = process.stdout;

if (stdin.isTTY) {
stdin.setRawMode(true);
stdin.setEncoding('utf8');
stdin.resume();
stdout.write('\u000A>Bienvenido\u000A');
} else {
process.exit();
}

stdin.on('readable', function(){

var input = stdin.read();
console.log(input);

});
}

nodo();

running the code

感谢您的关注。

最佳答案

请阅读 that document这解释了如何正确处理 process.stdin。你的错误是使用 stdin.resume在进程标准输入流上启用“旧”兼容模式。

// nodo.js

function nodo() {
var stdin = process.stdin;
var stdout = process.stdout;

if (stdin.isTTY) {
stdin.setRawMode(true);
stdin.setEncoding('utf8');
stdout.write('\u000A>Bienvenido\u000A');

process.stdin.setEncoding('utf8');

process.stdin.on('readable', function() {
var chunk = process.stdin.read();
if (chunk !== null) {
process.stdout.write('data: ' + chunk);
}
});

process.stdin.on('end', function() {
process.stdout.write('end');
});
} else {
process.exit();
}
}

nodo();

关于javascript - 在可读事件监听器回调中读取时,Node 的 process.stdin 可读流记录 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23569171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com