node.js - 用户按回车后如何使提示消失?
问题描述
对不起,我不确定如何正确表达这个词,我会尽量说清楚。
背景:我在 NodeJS 中制作了一个 CLI,它可以帮助我自动化一些我每天readline
用来获取用户输入的东西。
说这是提示
Welcome!
Enter a command:
如果用户help
作为命令输入并按回车键,我如何删除Enter a command:
文本并将其替换为>
?这类似于 Powerlevel10k 中的“瞬态提示”功能
所以它是这样的,在用户输入后按回车键后help
,Enter a command:
替换为>
Welcome!
> help (this used to be: "Enter a command: help")
Help: [...]
Enter a command:
用户输入功能
async function input(prompt) {
process.stdout.write(prompt);
rl.setPrompt(prompt);
return (await rl[Symbol.asyncIterator]().next()).value;
}
提示功能
function prompt() {
console.log("Welcome!")
var userinput = await input("Enter a command:");
// Maybe do something here?
parse(userinput.trim())
}
解析器功能(可能不相关,但可能有帮助)
function parse(command) {
if (command == "help") {
console.log(...)
}
// etc etc
}
有没有办法用 NodeJS 做到这一点?
我需要异步输入功能,因为有时我需要来自 socket.io 事件的输出,并且在使用“prompt-sync”(同步提示)之后,我发现它不允许在终端上显示 socket.io 事件输出.
如果这个问题令人困惑,请提前致谢。我希望我已经解释得够多了!:)
解决方案
推荐阅读
- javascript - 通过 javascript 在 html 中添加卡片
- rrdtool - 如何在 rrdtool 图形打印中打印 SI 单位?
- graphite - 将耳语数据库从一种石墨迁移到另一种石墨
- marklogic-9 - 在 TDE Marklogic 中如何转义空值三元组?
- uber-api - Uber API 发生了什么变化?服务器是否已关闭?近期有重新开张的计划吗?
- c# - TCP Socket ReceiveAsync 有时需要很长时间
- reactjs - 反应:按钮不起作用(onClick) - 应该传递给 index.js 但没有任何反应
- android - 重新创建没有按钮的条件片段
- c# - 如何检测一个单词是否在文本框中重复
- windows - Get-ChildItem 在没有“Where”的路径中带有野生字符