prompt-promise
是一个 NPM 包,用于在命令行中获取用户输入。它提供了一个简单的 API 来提示用户输入,等待用户响应,并将结果返回给你的程序。
安装
使用以下命令安装 prompt-promise
:
--- ------- --------------
接下来,在你的代码中导入它:
----- ------ - --------------------------
基本用法
让我们从一个基本示例开始。假设我们想要在命令行中询问用户他们的姓名。我们可以使用如下代码:
----- ------ - -------------------------- ------------ -- ---- ----- -- -------------------- - ------------------- ----------- -------------- -- -------------------- - ----------------------- ----- ---------------- ---
这个代码片段会提示用户输入他们的名字,然后打印一个问候语。prompt()
函数返回一个 Promise 对象,当用户输入完毕后,该 Promise 会被解决并返回输入内容作为参数。
注意我们在每个 prompt()
调用之后都调用了相应的方法,即 prompt.done()
或 prompt.finish()
。这告诉 prompt-promise
当前操作已完成,并准备好接受下一次输入。
高级用法
除了基本功能外,prompt-promise
还提供了许多其他选项。
指定输入类型
默认情况下,prompt()
函数将接受任何类型的输入。但是,你可以使用 mask
选项指定输入类型。例如,假设我们想要确保用户输入一个数字:
----- ------ - -------------------------- ------------ -- ---- -------- ------- -- - ----- ---------- -- ---------------------- - ----------------- -------- ------ -- ------------- -------------- -- -------------------- - ----------------------- ----- ---------------- ---
在这个示例中,我们使用了一个正则表达式作为 mask
选项的值,这将确保用户只能输入数字字符。
添加默认值
还可以通过 default
选项添加默认值,以便在用户未提供输入时使用它。例如,我们可以在上一个示例中添加一个默认值:
----- ------ - -------------------------- ------------ -- ---- -------- ------- -- - ----- ----------- -------- ---- -- ---------------------- - ----------------- -------- ------ -- ------------- -------------- -- -------------------- - ----------------------- ----- ---------------- ---
这将使程序在用户未输入内容时自动使用默认值 42
。
取消操作
如果用户想要取消操作,可以使用 SIGINT
信号中断程序执行。为了避免意外退出程序,你可以使用 pause
和 resume
选项。例如:
----- ------ - -------------------------- -- ------------- --------------- ------------ -- ---- ----- -- -------------------- - ------------------- ----------- -------------- -- -------------------- - ----------------------- ----- ---------------- --- -- ------ -------------- -------------------- ---------- - ---------------- ---
这将在用户输入期间暂停程序执行,并在用户按下 Ctrl+C
时恢复程序执行。
总结
prompt-promise
是一个强大且易于使用的 NPM 包,用于在命令行中获取用户输入。它提供了许多选项,使你可以控制提示和输入类型,并确保程序在用户取消操作时不会意外退出。
希望本文对你有所帮
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/52630