我在 gulp 任务中有一组可写流。我想合并它们并返回一个流。我正在使用合并流 Node 模块来执行此操作。但我收到以下错误。
[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)
是否支持合并可写流?如果是这样,我该怎么做?
这是我尝试过的 promise 。
const promises = streams.map(s => new Promise((resolve, reject) => s.on('finish', resolve).on('error', reject)));
return Promise.all(promises);
最佳答案
问题是 merge-stream
将每个流视为 Transform stream ,即它尝试 call可写流上的pipe
,但可写流没有pipe
方法,只有write
。要解决此问题,您可以使用 Transform streams进行写入,或者按照您所做的那样使用 Promise 等待 finish
事件。
关于node.js - 将可写 Node 流合并为一个流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39377669/