Подтвердить что ты не робот

Какая разница между событиями конца и конца в потоках Node

Потоки

Node.js запускают события end и finish. Какая разница между обоими?

4b9b3361

Ответ 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 - конец записи.