What's the difference between end and finish events in Node streams

node.jsStream

node.js Problem Overview


Node.js streams triggers both end and finish events. What's the difference between both?

node.js Solutions


Solution 1 - node.js

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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionSimon BoudriasView Question on Stackoverflow
Solution 1 - node.jstibluView Answer on Stackoverflow