У меня есть следующий код 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
. Почему? Как написать функцию, которая возвращает пользовательский ввод?