web-dev-qa-db-fra.com

Quelle est la différence entre les événements de fin et de fin dans les flux Node

Les flux Node.js déclenchent les événements end et finish. Quelle est la différence entre les deux?

57
Simon Boudrias

end et finish sont le même événement MAIS sur différents types de Streams.

  • stream.Readable se déclenche UNIQUEMENT end et JAMAIS finish
  • stream.Writable se déclenche UNIQUEMENT finish et JAMAIS end

Source: https://nodejs.org/dist/latest-v5.x/docs/api/stream.html

Pourquoi la dénomination différente du même événement?

La seule raison pour laquelle je pouvais penser est à cause des flux duplex (stream.Duplex), qui implémentent à la fois stream.Readable et stream.Writable les interfaces ( https://nodejs.org/dist/latest-v5.x/docs/api/stream.html#stream_class_stream_duplex ) sont des flux lisibles et inscriptibles en même temps. Pour faire la différence entre la fin de la lecture et la fin de l'écriture sur le flux, vous devez avoir déclenché un événement différent. SO, pour les flux Duplex end est en fin de lecture et finish est en fin d'écriture.

98
tiblu