2013-03-08 65 views
-1

我无法在一行中获取两个流以在node.js中工作。请参阅以下代码:连续两个以上的流?

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); 

如何获得连续两个流工作?

回答

1

你会觉得很愚蠢的,它是一个错字错误:

stream2.readable = stream2.writable = true; 
stream3.readable = stream3.writeable = true; 

看到区别了,在stream3.writable额外e

+0

谢谢!我很惊讶没有发生错误。 – 2013-03-08 23:43:34

0

尝试async(或从nmpjs.com) - 最流行的Node.js模块,用于通过示例和wiki处理异步JavaScript。