我有以下Node.js代码,行为很奇怪:
#!/usr/bin/env node
"use strict";
var readline = require('readline');
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
function input(prompt) {
rl.question(prompt, function (x) {
rl.close();
console.log("debug: " + x);
return x;
});
}
function main() {
var n = input("Number: ");
// console.log("value: " + n); // problematic line
}
main();
我想模仿Python的raw_input
函数,即从用户那里读取一行。在显示提示后,程序应被阻塞,直到用户按下Enter键。
如果“有问题的行”在注释中,它可以工作,程序会等待输入。然而,如果这行不在注释中,那么程序不会等待输入,n
就会变成undefined
。为什么?如何编写一个返回用户输入的函数?
n
呢?例如,如果我在main()
的末尾添加这行代码:console.log(Number(n)+1);
,那么问题又出现了。或者如果我想读取两个数字并在main
中将n1
和n2
相加并打印结果。是的,我是新手,感谢提供有用的链接。 - Jabba