节点stream中的结束和结束事件有什么区别?

Node.jsstream触发finish事件和finish事件。 两者有什么区别?

endfinish是相同的事件,但在不同types的stream。

  • 只有stream.Readable火才能end ,永不finish
  • stream.Writable火只finish ,永远不会end

来源: https : //nodejs.org/dist/latest-v5.x/docs/api/stream.html

为什么同一事件的命名不同?

我能想到的唯一原因是双工stream( stream.Writable ),它实现了stream.Readablestream.Writable接口( https://nodejs.org/dist/latest-v5.x/docs/api/ stream.html#stream_class_stream_duplex )是同时可读写的stream。 要区分阅读的结束和写在stream的结束,你必须有一个不同的事件发射。 所以,对于双面stream来说, end是阅读的结束, finish是写作的结束。