Node.js流会触发end
和finish
个事件。两者之间的区别是什么?
答案 0 :(得分:94)
end
和finish
在不同类型的Streams上是相同的事件。
stream.Readable
仅在end
和永久finish
stream.Writable
仅在finish
和永久end
来源:https://nodejs.org/dist/latest-v5.x/docs/api/stream.html
为什么同一事件的命名不同?
我能想到的唯一原因是双工流(stream.Duplex
),它实现了stream.Readable
和stream.Writable
接口(https://nodejs.org/dist/latest-v5.x/docs/api/stream.html#stream_class_stream_duplex)是可读写的流同时。要区分流的读取结束和写入结束,您必须触发不同的事件。因此,对于Duplex流end
,读取结束并且finish
即将结束。