Плавающая подсказка в node.js - PullRequest
0 голосов
/ 25 марта 2020

Я хотел бы сделать плавающее приглашение в node.js (приглашение, которое остается в нижней строке, даже когда что-то выводится). Вот что я пробовал:

const rl = require("readline").createInterface({input: process.stdin, output: process.stdout});
rl.question("$ ", console.log);
setTimeout(_ => console.log("some output"), 1000);

Это предлагает пользователю с помощью $, и пользователь может печатать после $, но когда строка регистрируется, приглашение остается на той же строке, но пользователь печатает в следующей строке.

Желаемый результат:

$ [user input goes here]
... 1 second later ...
some output
$ [user input goes here]

Фактический результат:

$ [user input goes here]
... 1 second later ...
$ some output
[user input goes here]

Как заставить приглашение перемещаться вниз по строке всякий раз, когда что-то выводится?

Редактировать: Я заглянул в модуль prompt , и это хорошо, но не совсем то, что я хочу, по двум причинам:

  1. Он не очень настраиваемый и добавляет кучу необычного форматирования, которое мне не нужно.

  2. Когда что-то выводится, приглашение остается на предыдущая строка и новое приглашение выводится на следующей строке, что не идеально.

Редактировать 2: Я также посмотрел на решения с чистым ANSI но у них тоже есть проблема. Возможность контролировать, где произойдет следующая печать, путем перемещения курсора - это хорошо, но пользовательский ввод также показывает, где находится курсор, что вызывает проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...