What is the difference between util.pump(streamA, streamB) and streamA.pipe(streamB)?

前端 未结 3 368
故里飘歌
故里飘歌 2021-01-12 22:10

The source code looks very similar: pump, pipe. Why would I use one instead of the other? Is one simply a better version of the other?

相关标签:
3条回答
  • 2021-01-12 22:37

    Stream.pipe is now the preferred method apparently since 0.3.x so try and use that when possible

    sources:

    https://groups.google.com/forum/?fromgroups#!topic/nodejs/FwdDQvAf4xM

    https://stackoverflow.com/a/4591335/424851

    0 讨论(0)
  • 2021-01-12 22:42

    There are two significant difference between the two. The first is that the util.pump method can operate on two "stream-like" objects, while the Stream.prototype.pipe assumes that they are stream objects. The second is because of that assumption, the pipe can be chained ( streamA | streamB | streamC ) while the former can't (easily).

    0 讨论(0)
  • 2021-01-12 22:43

    UPDATE: 28/04/2020

    It's worth to say that pump is only necessary for Node.js 8.x or earlier, as for Node.js 10.x or later version, pipeline is introduced to replace for pump. This is a module method to pipe between streams forwarding errors and properly cleaning up and provide a callback when the pipeline is complete.

    0 讨论(0)
提交回复
热议问题