[转换流]是一种[双工流],它会对输入做些计算然后输出。 例如 [zlib] 流和 [crypto] 流会压缩、加密或解密数据。

    输出流的大小、数据块的数量都不一定会和输入流的一致。 例如,Hash 流在输入结束时只会输出一个数据块,而 zlib 流的输出可能比输入大很多或小很多。

    stream.Transform 类可用于实现了一个[转换流]。

    stream.Transform 类继承自 stream.Duplex,并且实现了自有的 writable._write() 和 [readable._read()] 方法。 自定义的转换流必须实现 [transform._transform()][stream-_transform] 方法,[transform._flush()][stream-_flush] 方法是可选的。

    当使用转换流时,如果可读端的输出没有被消费,则写入流的数据可能会导致可写端被暂停。