将可写节点流合并为一个流

时间:2016-09-07 19:27:05

标签: node.js gulp node.js-stream

我在gulp任务中有一组可写流。我想合并它们并返回一个流。我正在使用merge-stream节点模块来执行此操作。我收到了以下错误。

[14:22:56] Error: Cannot pipe, not readable
    at WriteStream.Writable.pipe (_stream_writable.js:161:22)
    at add (C:\workspace\mediafly-viewer\desktop\node_modules\merge-stream\index.js:28:12)
    at Array.forEach (native)

是否支持合并可写流?如果是这样,我该怎么做呢?

这是我尝试过的承诺。

const promises = streams.map(s => new Promise((resolve, reject) => s.on('finish', resolve).on('error', reject)));

return Promise.all(promises);

1 个答案:

答案 0 :(得分:1)

问题是merge-stream将每个流视为Transform stream,即它在可写流上尝试call pipe,但是可写流没有Transform streams 1}}方法,仅pipe。您可以采取的措施是使用finish进行写入,或者使用Promise等待{{3}}事件。