Spec-Zone.ru › Deno 2

readline/promises

Использование в Deno

import * as mod from "node:readline/promises";

класс Interface

наследует _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}`);
question(
query: string,
options: Abortable,
): Promise<string>

класс Readline

Использование в Deno

import { Readline } from "node:readline/promises";

Конструкторы

Readline(
stream: WritableStream,
options?: { autoCommit?: boolean; },
)
новый

Методы

clearLine(dir: Direction): this

Метод 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(
input: ReadableStream,
output?: WritableStream,
completer?: Completer,
terminal?: boolean,
): 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
необязательный

Тип возвращаемого значения

Interface

Перегрузка 2

createInterface(options: ReadLineOptions): Interface

Параметры

options: ReadLineOptions

Тип возвращаемого значения

Interface

интерфейс ReadLineOptions

наследует Omit<_ReadLineOptions, "completer">

Использование в Deno

import { type ReadLineOptions } from "node:readline/promises";

Свойства

completer: Completer | undefined
необязательный

Необязательная функция для автодополнения клавишей Tab.


псевдоним типа 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API