Node.js streams triggers both end
and finish
events. What\'s the difference between both?
end
and finish
are the same event BUT on different types of Streams.
stream.Readable
fires ONLY end
and NEVER finish
stream.Writable
fires ONLY finish
and NEVER end
Source: https://nodejs.org/dist/latest-v5.x/docs/api/stream.html
Why the different naming of the same event?
The only reason I could think of is because of duplex streams (stream.Duplex
), which implement both stream.Readable
and stream.Writable
interfaces (https://nodejs.org/dist/latest-v5.x/docs/api/stream.html#stream_class_stream_duplex) are readable and writable stream at the same time. To differentiate between end of reading and end of writing on the stream you must have a different event fired. SO, for Duplex streams end
is end of reading and finish
is end of writing.