问题描述
我正在尝试将多个 Node.js 流通过管道传输到单个输出 writeableStream
。
我的代码(最小化方法的伪代码)就像
const streamsPiping = {num: streams.length};
for (const s of streams) {
s
.on('end',() => {
streamsPiping.num--;
})
.pipe(output,{end: streamsPiping.num === 0});
我需要的是,当所有输入流都完成流式传输后,输出流将被关闭(end
)。
正如你在代码中看到的,我试图在循环外使用一个闭包,这样当最后一个流结束时,我可以告诉 pipe
到最后的 output
流来关闭它.
但这不起作用,我猜是因为在流完成流式传输之前在 streamsPiping
调用中访问了 pipe
。
如何在所有流都完成管道传输后关闭 output
流?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)