Node.js“readline”无法正常工作

时间:2017-06-19 14:53:43

标签: javascript readline

我正在尝试获取用户输入,将其保存到变量并使用它执行其他操作,但readline函数无法按照我的意图运行。

这是我的代码:

var readline = require('readline')

var rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

var response
rl.question("Enter a number ", function (answer) {
    response = answer
    rl.close();
});

console.log('The user entered: ', response)

2 个答案:

答案 0 :(得分:2)

回调中的代码仅在用户实际键入一行时运行。您的console.log()不会等待这种情况发生。接口是异步

console.log()电话移到回调中,你会发现它有效。

答案 1 :(得分:2)

var readline = require('readline')

var rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

var response
rl.question("Enter a number ", function (answer) {
    response = answer
    outside();
    rl.close();
});

outside = function(){
    console.log('The user entered: ', response)
}

在用户在标准输入中输入任何内容之前,console.log已运行。

异步nodeJS的性质有时很难解决。尝试上面的代码应该做的伎俩。