首页 > 解决方案 > 用户按回车后如何使提示消失?

问题描述

对不起,我不确定如何正确表达这个词,我会尽量说清楚。

背景:我在 NodeJS 中制作了一个 CLI,它可以帮助我自动化一些我每天readline用来获取用户输入的东西。

说这是提示

Welcome!
Enter a command: 

如果用户help作为命令输入并按回车键,我如何删除Enter a command:文本并将其替换为>?这类似于 Powerlevel10k 中的“瞬态提示”功能

所以它是这样的,在用户输入后按回车键后helpEnter 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 事件输出.

如果这个问题令人困惑,请提前致谢。我希望我已经解释得够多了!:)

标签: node.js

解决方案


推荐阅读