微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

node.js – 连接两个(或n)个流

> 2个流:

给出可读的streams stream1和stream2,获得包含stream1和stream2的流的连贯(简明)方法是什么?

我不能做stream1.pipe(outStream); stream2.pipe(outStream),因为流内容混在一起.
n流:

给出一个EventEmitter,它发出不确定数量的流,例如

eventEmitter.emit('stream',stream1)
eventEmitter.emit('stream',stream2)
eventEmitter.emit('stream',stream3)
...
eventEmitter.emit('end')

什么是惯用的(简洁的)方式来获取流与所有流连接在一起?

解决方法

combined-stream包连接流.示例来自README:

var CombinedStream = require('combined-stream');
var fs = require('fs');

var combinedStream = CombinedStream.create();
combinedStream.append(fs.createReadStream('file1.txt'));
combinedStream.append(fs.createReadStream('file2.txt'));

combinedStream.pipe(fs.createWriteStream('combined.txt'));

我相信你必须一次附加所有的流.如果队列为空,则CombinedStream将自动结束.见issue #5.

stream-stream库是一个具有明确的.end的替代方案,但它不太受欢迎,并且可能没有经过很好的测试.它使用了节点0.10的streams2 API(参见this discussion).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐