Я использую модуль подсказок, версия узла 12.4.0
Мне интересно, можно ли вставить строку в «поле ввода» prompt.get ()
Следующий скрипт отображает (двойное) «приглашение»:
Через 5 секунд вставляется текст «Это тест»
Когда дается команда ввода, строка не распознается как ввод.
Также невозможно отредактировать строку перед нажатием Enter.
(введите что-либо до 5 секунд и нажмите ввод, и на дисплее появится надпись)
Конечная цель: заставить команды отправлять подсказки из внешнего источника, но дать конечному пользователю возможность изменять команды перед вводом.
Я попробовал process.stdout.write, process.stdin.write
Я также пытался заменить process.std * .write на prompt.std * .write
Ответ может быть конкретным для ОС, но я пробовал этот код как под Win10 x64, так и под Linux
const prompt = require("prompt");
function myFunc() {
process.stdin.write("This is a test");
}
setTimeout(myFunc, 5000);
prompt.get({
properties: {
test: {
description: "prompt"
}
}
}, (err, result)=> {
console.log("input: "+ result.test);
});
фактический результат:
~ / Nodejs / temp $ node index.js
prompt: prompt: Это тест
вход:
~ / Nodejs / температуры $
желаемый результат:
~ / Nodejs / temp $ node index.js
prompt: prompt: Это тест
вход: это тест
~ / Nodejs / температуры $