readline/promises
Использование в Deno
import * as mod from "node:readline/promises";
класс Interface
Использование в Deno
import { Interface } from "node:readline/promises";
Экземпляры класса readlinePromises.Interface создаются с помощью метода readlinePromises.createInterface(). Каждый экземпляр связан с одним потоком input Readable и одним потоком output Writable. Поток output используется для вывода подсказок для ввода пользователя, который поступает в поток input и считывается из него.
Методы
question(query: string): Promise<string> Метод rl.question() отображает query, записывая её в output, ожидает ввода пользователя в input, а затем вызывает функцию callback, передавая полученный ввод в качестве первого аргумента.
При вызове rl.question() возобновит поток input, если он был приостановлен.
Если Interface был создан со значением output, равным null или undefined, то query не записывается.
Если вызвать question после rl.close(), будет возвращён отклонённый промис.
Пример использования:
const answer = await rl.question('What is your favorite food? ');
console.log(`Oh, so your favorite food is ${answer}`);
Использование AbortSignal для отмены вопроса.
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}`);
класс Readline
Использование в Deno
import { Readline } from "node:readline/promises";
Конструкторы
Readline(
stream: WritableStream,
options?: { autoCommit?: boolean; },
) Методы
Метод rl.clearLine() добавляет во внутренний список ожидающих действий действие, которое очищает текущую строку связанного stream в направлении, заданном параметром dir. Вызовите rl.commit(), чтобы увидеть результат работы этого метода, если только при создании объекта не был передан параметр autoCommit: true.
clearScreenDown(): this Метод rl.clearScreenDown() добавляет во внутренний список ожидающих действий действие, которое очищает связанный поток от текущего положения курсора до конца. Вызовите rl.commit(), чтобы увидеть результат работы этого метода, если только при создании объекта не был передан параметр autoCommit: true.
commit(): Promise<void> Метод rl.commit() отправляет все ожидающие действия в связанный stream и очищает внутренний список ожидающих действий.
cursorTo(
x: number,
y?: number,
): this Метод rl.cursorTo() добавляет во внутренний список ожидающих действий действие, которое перемещает курсор в заданное положение в связанном stream. Вызовите rl.commit(), чтобы увидеть результат работы этого метода, если только при создании объекта не был передан параметр autoCommit: true.
moveCursor(
dx: number,
dy: number,
): this Метод rl.moveCursor() добавляет во внутренний список ожидающих действий действие, которое перемещает курсор относительно его текущего положения в связанном stream. Вызовите rl.commit(), чтобы увидеть результат работы этого метода, если только при создании объекта не был передан параметр autoCommit: true.
rollback(): this Метод rl.rollback очищает внутренний список ожидающих действий, не отправляя их в связанный stream.
функция createInterface
Использование в Deno
import { createInterface } from "node:readline/promises";
Перегрузка 1
createInterface(): InterfaceМетод readlinePromises.createInterface() создаёт новый экземпляр readlinePromises.Interface.
import readlinePromises from 'node:readline/promises';
const rl = readlinePromises.createInterface({
input: process.stdin,
output: process.stdout,
});
После создания экземпляра readlinePromises.Interface чаще всего начинают слушать событие 'line':
rl.on('line', (line) => {
console.log(`Received: ${line}`);
});
Если для этого экземпляра terminal имеет значение true, поток output будет наиболее совместимым, если в нём определено свойство output.columns и генерируется событие 'resize' для output, когда количество столбцов изменяется (process.stdout делает это автоматически, если поток является TTY).
Параметры
input: ReadableStream output: WritableStream completer: Completer terminal: boolean Тип возвращаемого значения
Перегрузка 2
createInterface(options: ReadLineOptions): InterfaceПараметры
options: ReadLineOptions Тип возвращаемого значения
интерфейс ReadLineOptions
Использование в Deno
import { type ReadLineOptions } from "node:readline/promises";
псевдоним типа Completer
Использование в Deno
import { type Completer } from "node:readline/promises";
Определение
(line: string) => CompleterResult | Promise<CompleterResult>
© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/api/node/readline/promises