[英]Node js - How to pause execution of subsequent lines of code while waiting for user input in node js
我是node.js的新手并且在飞行中学习它。 我编写了一个代码来提示CLI的userinput超时。 问题是,在等待用户输入时,后续的代码行被执行而不是暂停。 我如何在节点中实现这一点。 以下是我的代码
var readline = require('readline');
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
waitForUserInput = function (timeout) {
var timer = setTimeout(function () {
console.log("Process Resumed..");
rl.close();
}, timeout);
rl.question("Press Enter to Continue..!!", function () {
console.log("Process Resumed..");
clearTimeout(timer);
rl.close();
});}
方法调用是
waitForUserInput(5000);
截至目前,如果我做一个console.log(“你好”); 输出是
流程已暂停。 按Enter继续.. !! 你好
我只想在用户输入或超时后才能获得console.log消息。
您永远不应该停止执行Node.js进程。 Node.js构建在EventLoop
。 在Node.js中,您的代码应该异步工作 - 您要求用户输入键盘并注册一段代码,一旦用户完成输入就会触发该代码。
对于任何类型的命令行输入,我建议使用Inquirer.js包 。 您应该创建一个prompt
并在then
块中处理用户输入( then
在履行没有错误的情况下调用)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.