I can't get two streams in a row to work in node.js. See the following code:
var Stream = require('stream');
var stream1 = new Stream;
stream1.readable = true;
var stream2 = new Stream;
stream2.readable = stream2.writable = true;
var stream3 = new Stream;
stream3.readable = stream3.writeable = true;
var i = 0;
stream2.write = function(data){this.emit('data', data)};
stream3.write = function(data){this.emit('data', data)};
setInterval((function() {
stream1.emit('data', String(i++));
}), 100);
//works:
stream1.pipe(stream2).pipe(process.stdout);
//does not work - why???
//stream1.pipe(stream2).pipe(stream3).pipe(process.stdout);
How do I get the two streams in a row to work?
You will feel very stupid , its a typo error:
stream2.readable = stream2.writable = true;
stream3.readable = stream3.writeable = true;
See the difference, an extra e in stream3.writable.