javascript - 在 Node.js 中退出 CRTL-D 上的 CLI
问题描述
我正在构建一个为 Web 应用程序创建起始代码的 CLI。现在我们只设置了一些示例问题的 UI。我们要确保当用户按下 CRTL-C 或 CRTL-D 时,程序会干净地退出并出现告别消息。我能够捕捉到 CRTL-C,但它不适用于 CRTL-D。
这是我到目前为止的收获:
let answers = async () => {
try {
await prompt(questions)
} catch (err) {
console.log(chalk.yellow("Closing web-stater-cli..."))
}
}
answers()
但是当我按下 CRTL-D 时,它就停止了,没有任何消息。有没有人对如何正确退出和显示消息有任何建议?
解决方案
您使用的 readline 接口可能不支持 ^D。我建议使用 readline 内置模块尝试这种行为,将标准输入设置为原始模式。这样您就可以在没有信号 SIGINT(无 ctrl+C)的情况下收听“关闭”事件。您可以在节点文档上查看更多信息
推荐阅读
- hibernate - 我理解持久上下文对吗?
- python - pandas.iterrows() 和 UDF 函数哪个更快?
- chromium - 是否可以自动允许在铬中使用麦克风
- google-apps-script - 清单中的 DataStudio 设置被删除
- jsf - var 'FileUpload' 的小部件不可用
- javascript - 调用同步请求时 JS/CSS 不起作用
- oracle - 使用 R2dbc 过滤查询
- python - 商店商品的分类
- javascript - react hooks的常见场景:如何改变hook依赖而不导致无限渲染
- swift - 泛型和返回专用泛型实例的方法