Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 将可写节点流合并到一个流中_Node.js_Gulp_Node.js Stream - Fatal编程技术网

Node.js 将可写节点流合并到一个流中

Node.js 将可写节点流合并到一个流中,node.js,gulp,node.js-stream,Node.js,Gulp,Node.js Stream,我在一个gulp任务中有一组可写流。我想合并它们并返回一个流。我正在使用合并流节点模块来实现这一点。但是我得到了以下错误 [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

我在一个gulp任务中有一组可写流。我想合并它们并返回一个流。我正在使用合并流节点模块来实现这一点。但是我得到了以下错误

[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);

问题是,
合并流
将每个流视为一个,即它尝试在可写流上
管道
,但可写流没有
管道
方法,只有
写入
。要解决此问题,您可以将其用于写操作,或者使用Promise to wait(承诺等待事件)来完成操作。

您不能将不可读(例如,仅写)流导入可写流。您是否考虑将一个可写流转换为<代码>转换<代码>(双工)流,或者这是不可能的吗?实际上,我不确定。目标是在所有流都完成编写后得到通知。我可以用承诺来完成这件事,但它不是很干净。在这里发布它作为一个可能的解决方案。您能给出一个如何将写流(如fs.createWriteStream)转换为可读流的示例吗?