Обучение node.js. Труба работает, перекачивая поток обратно в себя, по-видимому, поэтому обработанные данные могут быть выведены. Для меня это не имеет никакого смысла, поскольку, похоже, это похоже на соединение обоих концов потока с самим собой. Как труба различает данные до и после обработки? т.е. почему loud.pipe(...).pipe(loud)
не приводит к какой-либо форме бесконечного цикла обработки?
var trumpet = require('trumpet');
var through = require('through');
var tr = trumpet();
var loud = tr.select('.loud').createStream();
loud.pipe(through(function (buf) {
this.queue(buf.toString().toUpperCase());
})).pipe(loud);
process.stdin.pipe(tr).pipe(process.stdout);