Skip to main content
Interface.prototype.question - readline/promises - Node documentation
method Interface.prototype.question

Usage in Deno

import { Interface } from "node:readline/promises";
Interface.prototype.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}`);

Parameters

query: string

A statement or query to write to output, prepended to the prompt.

Return Type

Promise<string>

A promise that is fulfilled with the user's input in response to the query.

Interface.prototype.question(
query: string,
options: Abortable,
): Promise<string>

Parameters

query: string
options: Abortable

Return Type

Promise<string>
Back to top