Usage in Deno
import { promises } from "node:readline";
Instances of the readlinePromises.Interface
class are constructed using the readlinePromises.createInterface()
method. Every instance is associated with a
single input
Readable
stream and a single output
Writable
stream.
The output
stream is used to print prompts for user input that arrives on,
and is read from, the input
stream.
question(query: string): Promise<string>
The rl.question()
method displays the query
by writing it to the output
,
waits for user input to be provided on input
, then invokes the callback
function passing the provided input as the first argument.
When called, rl.question()
will resume the input
stream if it has been
paused.
If the Interface
was created with output
set to null
or undefined
the query
is not written.
If the question is called after rl.close()
, it returns a rejected promise.
Example usage:
const answer = await rl.question('What is your favorite food? ');
console.log(`Oh, so your favorite food is ${answer}`);
Using an AbortSignal
to cancel a question.
const signal = AbortSignal.timeout(10_000);
signal.addEventListener('abort', () => {
console.log('The food question timed out');
}, { once: true });
const answer = await rl.question('What is your favorite food? ', { signal });
console.log(`Oh, so your favorite food is ${answer}`);