我是节点的初学者,我正在尝试构建一个简单的控制台菜单。我一直在寻找这个,但是找不到合适的答案。
当我运行脚本时,我想显示一个菜单并要求用户输入一个选项。在他选择之后,我执行一个动作然后再次显示菜单。
我尝试使用while循环,但它阻止了我的程序。
以下是我想要实现的一个例子:
int userRes = -1;
while(userRes != 0){
console.log("Option 1")
console.log("Option 2")
console.log("Option 3")
userRes = readLineSync.question("Pick an option");
if(userRes == 1){
doSomething();
}else if (userRes == 2){
doSomethingElse();
}
}
编辑:实际代码如下:如你所见,我使用stomp。 while循环显示我的菜单,if语句中的操作被执行。 问题是,当stomp发回响应时,我的订阅功能中的代码没有被执行。 我尝试了一段时间(只是动作),它完美无缺。
var Stomp = require("stomp-client");
const readlineSync = require("readline-sync");
var client = new Stomp(host, 61613);
function conn(res,req){
client.connect(function(sessionId) {
client.subscribe("/queue/" + res, function(body, headers) {
console.log(body);
});
var res = -1;
while (res != 0) {
displayMenu();
var res = readlineSync.question("Introduceti o optiune: ");
if (res == 1) {
client.publish("/queue/" + req, "test");
} else if (res == 0) {
process.exit();
}
}
});
}
function displayMenu() {
console.log(
"Option one\n Option two\n 0 for exit";
);
}
答案 0 :(得分:0)
您可以使用此代码
const readLineSync = require('readline-sync')
let userRes;
while (userRes !== '0') {
console.log("Option 1")
console.log("Option 2")
console.log("Option 3")
userRes = readLineSync.question("Pick an option");
if (userRes === '1') {
doSomething()
} else if (userRes === '2') {
doSomethingElse()
}
}