Я надеялся увидеть, может ли Node.js приостановить выполнение сценария после того, как он попадет в блок process.stdin для ввода пользовательского ввода для приложений командной строки, аналогично тому, как prompt() работает с JS в браузер или как получает работает в Ruby.Есть ли способ приостановить запуск сценария с process.stdin для ввода пользователем в Node.js?
var response = '';
console.log("What's your favorite color?");
process.stdin.resume();
process.stdin.setEncoding('utf8');
process.stdin.on('data', function (text) {
response = text;
process.exit();
});
console.log(`Cool! So ${response} is your favorite color? Mine is black.`);
В простом сценарии выше, я надеюсь увидеть
What's your favorite color?
*pause for user input ===>* Red
Cool! So Red is your favorite color? Mine is black.
с паузой, останавливающая сценарий, пока я что-то типа и нажать кнопку ввода для того, чтобы продолжить работу. Вместо этого я вижу
What's your favorite color?
Cool! So is your favorite color? Mine is black.
немедленно распечатано и THEN принимает от пользователя ввода.
Я знаю, есть и другие модули, такие как Readline и оперативного, которые упрощают принятие на входе пользователя для узла. В этом вопросе я особенно надеюсь, что Node.js предложит эту функциональность без установки дополнительных пакетов (process.stdin - это первое, что приходит на ум), хотя было бы полезно узнать, предоставляют ли какие-либо модули это как функциональность.
Это определенно соответствует функциональности счета. Но знаете ли вы, есть ли способ достичь этого, не устанавливая такой пакет, как readline-sync? Просто с узлом? –
Установка пакетов является общей задачей в узле. Не беспокойтесь об этом, @CaryMeskell. – gustavohenke