Простое консольное меню - PullRequest
0 голосов
/ 08 июня 2018

Я новичок в узле и пытаюсь создать простое консольное меню.Я продолжал искать это, но не смог найти правильный ответ.

Когда я запускаю скрипт, я хочу отобразить меню и попросить пользователя ввести опцию.После того, как он выбрал, я выполняю действие, затем снова отображаю меню.

Я пытался использовать цикл 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";
  );
}

1 Ответ

0 голосов
/ 08 июня 2018

Вы можете использовать этот код

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()
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...