【问题标题】:Simple console menu简单的控制台菜单
【发布时间】:2018-06-08 20:11:16
【问题描述】:

我是 node 的初学者,我正在尝试构建一个简单的控制台菜单。我一直在寻找这个,但找不到合适的答案。

当我运行脚本时,我想显示一个菜单并要求用户输入一个选项。他选择后,我执行一个动作,然后再次显示菜单。

我尝试使用 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 发回响应时,我在 subscribe 函数中的代码没有被执行。 我试了一会儿(只是动作),效果很好。

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";
  );
}

【问题讨论】:

  • 请发布实际代码。那个不跑。至少缺少 require()s 并且 javascript 中没有“int”。
  • 我发布了实际代码。

标签: node.js node-modules


【解决方案1】:

你可以使用这个代码

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()
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-16
    • 2021-11-22
    • 2014-04-22
    • 2022-06-23
    • 1970-01-01
    • 2021-11-04
    • 1970-01-01
    相关资源
    最近更新 更多