如果 readable.pipe() 返回一个可写,我们如何链接管道?



节点.js文档说,readable.pipe(destination[, options])'返回对目标流的引用,从而可以设置 管道溪流的链条上'。

流的文档。Writable没有提到该方法pipe,因此该方法似乎不可用。

但是,如果该方法在返回的Writeable上不可用,如何在返回的上调用pipe该方法?

例:

|-> returns a Writable
|
r.pipe(z).pipe(w);
|
|-> How is the chained pipe available here?

是我错过了重点还是文档缺少了重点?

如果您继续向下滚动同一页面,您将找到双工和转换流的文档。stream.Duplexstream.Transform都实现了stream.Readablestream.Writable接口。您可以使用它们来链接.pipe调用。事实上,它们的存在正是为了这个目的

一个常见的例子是读取、压缩和写入文件......

const gzip = zlib.createGzip();
const fs = require('fs');
const inp = fs.createReadStream('input.txt');
const out = fs.createWriteStream('input.txt.gz');
inp.pipe(gzip).pipe(out);

在此示例中,zlib.createGzip()返回Transform流。您可以通过子类化stream.Transform来创建自己的自定义转换

相关内容

  • 没有找到相关文章

最新更新