Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正在Node.js中的CRTL-D上退出CLI_Javascript_Node.js_Eof - Fatal编程技术网

Javascript 正在Node.js中的CRTL-D上退出CLI

Javascript 正在Node.js中的CRTL-D上退出CLI,javascript,node.js,eof,Javascript,Node.js,Eof,我正在构建一个为web应用程序创建启动程序代码的CLI。现在,我们只是用一些示例问题设置了UI。我们希望确保当用户按下CRTL-C或CRTL-D时,程序会干净地退出,并显示一条再见消息。我能够捕捉到CRTL-C,但对CRTL-D不起作用 以下是我迄今为止的收获: let answers = async () => { try { await prompt(questions) } catch (err) { console.log(chalk

我正在构建一个为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内置模块尝试此行为,将stdin设置为原始模式。通过这种方式,您可以在没有信号SIGINT(无ctrl+C)的情况下侦听“close”事件。您可以查看有关使用流程事件的更多信息。在('SIGINT',…)上,这将有所帮助