2017-03-18 25 views
0

我採取了一些寫流,並用它這樣的流:的Node.js:實施而忽略「端」

const consumer = new MyStream() // stream which I implementing 

// producer1 and producer2 are just instances of any Readable stream 
producer1.pipe(consumer, {end: false}) 
producer2.pipe(consumer, {end: false}) 

這裏的重複部分{end: false}。有沒有辦法將可寫入配置爲忽略生產者的「結束」事件? process.stderr和process.stdout像這樣工作

+0

您正在實施MyStream還是製作者?如果你正在實現MyStream,那麼你正在實現一個Duplex流,而不僅僅是一個Writable流。 – idbehold

+0

向代碼添加了一些註釋。不久:我正在實施MyStream() 如何實施雙工流解決可以解決我的問題? – kharandziuk

回答

0

由於數據不是按需生成的,因此請使用write,但爲drain事件添加偵聽器。

public writeStream(readableStream, cb) { 
    if (!this.write(readableStream.read()) { 
     this.once('drain',() => { 
      console.log("Wait for drain event"); 
      cb(); 
     }); 
    else { 
     process.nextTick(cb); 
    } 
    return this; 
}