#node.js
#node.js
Вопрос:
Node.js свойство readline не останавливается для ввода, вместо этого продолжает программу, вызывая сбой приложения. Пытаясь решить эту проблему, я обнаружил, что, по-видимому, node выполняет весь код одновременно и из-за этого не останавливается для ввода. Я нашел способы запустить этот код, но у меня они не сработали.
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
var token;
var pass;
rl.question('token: ', (tok) => {
token = tok;
rl.close();
});
rl.question('pass: ', (pas) => {
pass = pas;
rl.close();
});
Что я могу сделать, чтобы решить эту проблему?
Ответ №1:
Я надеюсь, что вы смотрите что-то вроде приведенного ниже:
const readLine = require('readline');
const util = require('util')
const { promisify } = util;
const readline = readLine.createInterface({
input: process.stdin,
output: process.stdout,
});
// Prepare readline.question for promisification
readline.question[util.promisify.custom] = (question) => {
return new Promise((resolve) => {
readline.question(question, resolve);
});
};
let questionPs = promisify(readline.question);
async function askQuestions (questions,readline) {
let answers= [];
for(let i=0;i<2;i ){
let tmp = await questionPs(q[i]);
answers.push(tmp)
}
console.log(answers);
readline.close();
}
// Usage example:
let q = ['token:','pass:']
askQuestions(q,readline)