我正在尝试获取用户输入,将其保存到变量并使用它执行其他操作,但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)
答案 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的性质有时很难解决。尝试上面的代码应该做的伎俩。