节点流中的结束事件和完成事件有什么区别
What's the difference between end and finish events in Node streams
Node.js 流同时触发 end
和 finish
事件。两者有什么区别?
end
和 finish
是同一事件,但在不同类型的流上。
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) 是可读和同时写入流。要区分流上的读取结束和写入结束,您必须触发不同的事件。因此,对于双工流,end
是读取结束,finish
是写入结束。
Node.js 流同时触发 end
和 finish
事件。两者有什么区别?
end
和 finish
是同一事件,但在不同类型的流上。
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) 是可读和同时写入流。要区分流上的读取结束和写入结束,您必须触发不同的事件。因此,对于双工流,end
是读取结束,finish
是写入结束。