NodeJS: What's the difference between a Duplex stream and a Transform stream?

后端 未结 4 1662
忘掉有多难
忘掉有多难 2020-12-23 11:53

The Stream docs state that Duplex Streams \"are streams that implement both the Readable and Writable interfaces\" and Transform Streams \"are Duplex streams where the outpu

4条回答
  •  生来不讨喜
    2020-12-23 12:12

    A Duplex stream can be thought of a readable stream with a writable stream. Both are independent and each have separate internal buffer. The reads and writes events happen independently.

                                 Duplex Stream
                              ------------------|
                        Read  <-----               External Source
                You           ------------------|   
                        Write ----->               External Sink
                              ------------------|
                You don't get what you write. It is sent to another source.
    

    A Transform stream is a duplex where the read and write takes place in a causal way. The end points of the duplex stream are linked via some transform. Read requires write to have occurred.

                                     Transform Stream
                               --------------|--------------
                You     Write  ---->                   ---->  Read  You
                               --------------|--------------
                You write something, it is transformed, then you read something.
    

提交回复
热议问题