2013-03-08 68 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。