Я просто пытаюсь дождаться ввода пользователем пароля, а затем использовать его, прежде чем перемещаться по остальной части моего кода. Ошибка Cannot read property 'then' of undefined
. question()
функцияКак я могу использовать readline синхронно?
let rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.question('Password: ', password => {
rl.close();
return decrypt(password);
}).then(data =>{
console.log(data);
});
function decrypt(password) {
return new Promise((resolve) => {
//do stuff
resolve(data);
});
}
Похоже, что 'rl.question' не возвращает обещание в vanilla Node.Js (я предполагаю, что вопрос касается node.js). Фактически, он ничего не возвращает, см. [Исходный код] (https://github.com/nodejs/node/blob/b869ecaacfdd218e1920f1545a88a4304efd0288/lib/readline.js#L217-L228). Поэтому я ожидаю, что на нем нет метода 'then'. Поэтому, если вам действительно нужно обещание, я думаю, вам придется его реализовать вручную. – yeputons