我正在使用readline
节点(12)中的模块接受用户输入,如下所示:
import * as readline from "readline";
process.stdin.setEncoding('utf-8');
console.log("input is a TTY?",process.stdin.isTTY);
const rl = readline.createInterface({input: process.stdin, output: process.stdout, prompt: '> '});
rl.prompt();
rl.on('line' ,inputLine => { inputStringLines.push(inputLine); rl.prompt(); });
rl.on('close',() => { console.log('input has closed'); main(); });
这些行已正确捕获到我的inputStringLines
数组中,但令人讨厌的是,该过程正在打印出刚刚读取的每一行:
我如何摆脱多余的行(没有>
提示的行)
我通过更改脚本运行方式来修复它。之前,我使用nodemon
过node的-r ts-node/register
选项。当我转而使用ts-node-dev
来执行脚本时,问题就消失了。
还请注意,process.stdin.isTTY
现在已正确设置了它,而之前却是未定义的(请看下图的第一行,与原始文章中的第一行相比)
仍然不知道根本原因,但我很高兴继续前进。