0

How can I get rl.question to return the value that the user inputs, my code looks like this:

const readline = require('readline');
const { stdin: input, stdout: output } = require('process');
    
const rl = readline.createInterface({ input, output });
    
console.log(rl.question("hello?",(answer) => {return answer}))

I know there are probably better modules to use if I want a python-style input function, but 'prompts' seems to have the same problem.

Arin Bryan
  • 29
  • 1
  • 3

1 Answers1

1

I'm not super sure what you are asking, so let me know if this isn't it.

ReadLine Docs

To console.log() the answer from a ReadLine question there are multiple methods, here are some.

try moving the console.log inside of the {}

rl.question('hello? ', (answer) => {
 console.log(answer);
 // ... whatever you want to do with the answer variable 
})

or you can use async/await with promise

async function AskQuestion() {
  return new Promise(async (resolve, reject) => {
    rl.question('Hello? ', (answer) => {
      resolve(answer);
    });
  });
}

and then just await the function somewhere

(async () => {
    let answer = await AskQuestion();
    console.log(answer);
})();
Crispy
  • 382
  • 1
  • 11