Тест работы с потоками sdtin и stdout
Читаю книжку по потокам... Там первым же примером есть такой код
process.stdin.setEncoding('utf8') process.stdin.on('readable', function() { var input = process.stdin.read(); if (input !== null) { process.stdout.write(input) var command = input.trim(); if (command == 'exit') { process.exit(0); } } }) Автор уверяет что процесс завершится если с клавиатуры набрать exit. У меня же все завершается при вводе любой строки. Т.е. происходит ожидание только "первой порции" из потока, обработка и конец программы... Запускаю так node tmp.js Далее набор символов и нажимаю Enter. Происходит вывод введенного мной и программа завершается. Вот меня и заинтересовали такие моменты: - Почему сначала ожидание события есть, а после ввода его уже нет? - Может в примере чего-то не хватает? |
process.stdin.setEncoding('utf8') process.stdin.on('data', function(input) { if (input !== null) { process.stdout.write(input) if ( input.trim() === 'exit') { process.exit(0); } } }) вариант а что за книга? |
Цитата:
https://ru.pdfdrive.com/Изучае...182019825.html Цитата:
|
Точнне там EventEmitter
подписываемся и ждем события если нет подписчиков выходим Здесь есть больше примеров |
Цитата:
Цитата:
|
Я на телеграм каналах вишу по книгам
https://t.me/bzd_channel https://t.me/physics_lib там есть поиск из последнего, что понравилось Шаблоны проектирования Node.js / пер. с анг. А. Н. Киселева. – М.: ДМК Пресс, 2017. – 396 с.: ил. Олимпиадное программирование. / пер. с англ. А. А. Слинкин – М.: ДМК Пресс, 2018. – 300 с.: ил. пусть не пугает название последней, подробно и просто разложены решения задач |
ksa,
ещё важно понимать для какой версии Node.js написан учебник. Всё меняется каждые 6 месяцев. process.stdin.setEncoding('utf8') process.stdin.on('readable', function() { var input = process.stdin.read(); if (input !== null) { process.stdout.write(input); var command = input.trim(); if (command == 'exit') { process.exit(0); } process.stdin.resume() } }) |
Vlasenko Fedor, спасибо еще раз. :)
Цитата:
А тренируюсь на Ноде "последней". |
Часовой пояс GMT +3, время: 11:46. |