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 Answers
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
- 1
- 1
- 5,304
- 13
- 51
- 73
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).
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.
- 10,273
- 5
- 34
- 41