将可写节点流合并为一个流
Merging writable node streams into one stream
我在 gulp 任务中有一组可写流。我想将它们合并 return 一个流。我正在使用合并流节点模块来执行此操作。不过我收到以下错误。
[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);
问题是 merge-stream
将每个流视为一个 Transform stream, i.e. it tries to call pipe
on the writable stream, but writable streams do not have pipe
method, only write
. What you can do to fix this is to either use Transform streams for your writes, or do as you've done by using Promise to wait for the finish
事件。
我在 gulp 任务中有一组可写流。我想将它们合并 return 一个流。我正在使用合并流节点模块来执行此操作。不过我收到以下错误。
[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);
问题是 merge-stream
将每个流视为一个 Transform stream, i.e. it tries to call pipe
on the writable stream, but writable streams do not have pipe
method, only write
. What you can do to fix this is to either use Transform streams for your writes, or do as you've done by using Promise to wait for the finish
事件。