Я новичок в узле и пытаюсь создать простое консольное меню.Я продолжал искать это, но не смог найти правильный ответ.
Когда я запускаю скрипт, я хочу отобразить меню и попросить пользователя ввести опцию.После того, как он выбрал, я выполняю действие, затем снова отображаю меню.
Я пытался использовать цикл 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";
);
}