我正在尝试使用提示设置一个带有用户输入的局部变量。我正在使用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
答案 0 :(得分:0)
prompt.get()
是一个异步函数。这意味着,它执行get函数时,它执行匿名回调函数(将选项设置为result.option),同时它跳转到下一个语句,即{{1 }}。
这意味着在匿名回调函数有机会将选项设置为console.log(option)
之前执行console.log(option)
get。
答案 1 :(得分:-1)
您可以声明一个变量并将用户输入存储在其中。然后使用if语句检查变量是否为空。如果它不是空的(用户键入了某些内容),您可以按照自己喜欢的顺序开始输出内容。