小编28O*_*hes的帖子

如何让JavaScript控制台用户输入工作(node.js)?

这是我的一些功课.我希望它读取用户输入,然后创建两个对象,根据用户输入给出它们的值.这是我的代码,从JS文件的顶部开始:

console.log("Type 'help' for commands");
console.log("Square numbers:");
console.log("Enter player 1 name");

var player1 = new Player(readLine());
var player2 = new Player(readLine());

console.log("logging name after making players" + player1.name);

function readLine() {
    var inputText;
    var readline = require('readline');
    var rl = readline.createInterface({
        input: process.stdin,
        output: process.stdout
    });

    rl.question("Enter player name? ", function(answer) {
        inputText = answer;
        console.log("Player name:", answer);
        rl.pause();
    });
    return inputText;
}
Run Code Online (Sandbox Code Playgroud)

这是我得到的输出:http://oi60.tinypic.com/9tn7nn.jpg

我已经习惯了C#和Java,在那些语言中,readline()会等待输入然后用我输入的任何内容创建对象,然后再转到下一行.不是在JS中!它只是继续,在我输入任何内容之前调用readline()两次(因此打印"prompt>"两次)然后记录播放器1的名称(在输入之前,因此未定义).然后它等待我输入内容,一旦我输入内容,它会将两个玩家设置为一个名称,然后结束程序.

是否有可能做我想做的事情?是否有另一种方法可以让输入工作而不跳过它并运行其余的代码?

提前致谢!

javascript console input node.js

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

console ×1

input ×1

javascript ×1

node.js ×1