Node.js запускают события end и finish. Какая разница между обоими?
Какая разница между событиями конца и конца в потоках Node
Потоки
Ответ 1
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) являются читаемыми и записываемыми потоками в одно и то же время. Чтобы различать конец чтения и конец записи в потоке, у вас должно быть другое событие. SO, для дуплексных потоков end - конец чтения, а finish - конец записи.