Показать сообщение отдельно
  #1 (permalink)  
Старый 19.05.2021, 09:44
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Тест работы с потоками 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.
Происходит вывод введенного мной и программа завершается.

Вот меня и заинтересовали такие моменты:
- Почему сначала ожидание события есть, а после ввода его уже нет?
- Может в примере чего-то не хватает?
Ответить с цитированием