【发布时间】:2021-06-05 23:46:58
【问题描述】:
我有一段简单的代码用于读取基于终端的构建脚本的输入。
async function readLine(): Promise<string> {
return new Promise<string>(resolve => {
const callback = (data: any) => {
process.stdin.off('data', callback);
resolve(data.toString().trim());
};
process.stdin.on('data', callback);
});
}
这很好用,但我希望能够检测是否按下了向上箭头,以便用户可以返回到上一个提示。
到目前为止,我看到的每一个允许我检测向上箭头键的示例都需要完全放弃基于行的输入,而是一次处理所有输入一个字符。我不想那样做。
我想要一个仅由向上箭头键触发的回调(稍后可能还有其他特殊键),所有其他键都通过通常的 'data' 回调,一个完整的 Enter 终止一次一行。
有没有办法做到这一点?
【问题讨论】:
标签: javascript node.js stdin