在javascript中等待命令行提示后的输入

时间:2015-10-02 15:45:45

标签: javascript command-line-interface prompt

我正在尝试使用提示设置一个带有用户输入的局部变量。我正在使用javascript并在命令行中使用node运行它。我已经安装了提示模块,我在方法中使用它。我遇到的问题是在prompt.get()之后执行语句不要等到输入用户输入。我写的方法的其余部分依赖于选项变量。我想在prompt.get()之后执行任何操作之前设置选项。这是代码



function main_loop(){
  var prompt = require('prompt');
  console.log("OPTIONS");
  console.log("=========");
  console.log("1. Use a potion");
  console.log("2. Go to the next room");
  console.log("3. Exclaim ' Die you wizard!!!'");
  console.log("4. Exit game");
  var option;
  prompt.get(['option'], function(err, result){
    option = result.option;
    console.log("option is: " + option);
  });
  console.log(option);

}
main_loop();




这是输出。我通过节点运行并输入1.

  

块引用

OPTIONS
=========
1. Use a potion
2. Go to the next room
3. Exclaim ' Die you wizard!!!'
4. Exit game
prompt: option:  undefined
1
option is: 1

2 个答案:

答案 0 :(得分:0)

prompt.get()是一个异步函数。这意味着,它执行get函数时,它执行匿名回调函数(将选项设置为result.option),同时它跳转到下一个语句,即{{1 }}。

这意味着在匿名回调函数有机会将选项设置为console.log(option)之前执行console.log(option) get。

答案 1 :(得分:-1)

您可以声明一个变量并将用户输入存储在其中。然后使用if语句检查变量是否为空。如果它不是空的(用户键入了某些内容),您可以按照自己喜欢的顺序开始输出内容。