end
和finish
是相同的事件,但在不同类型的流上.
stream.Readable
次火灾只有end
次,永远不会finish
次stream.Writable
次火灾只有finish
次,永远不会end
次资料来源:https://nodejs.org/dist/latest-v5.x/docs/api/stream.html
Why the different naming of the same event?
我能想到的唯一原因是因为双工流(stream.Duplex
),它实现了stream.Readable
和stream.Writable
接口(https://nodejs.org/dist/latest-v5.x/docs/api/stream.html#stream_class_stream_duplex)同时是可读写流.要区分流上的读取结束和写入结束,必须触发不同的事件.因此,对于双工流,end
是读取结束,finish
是写入结束.