1. ホーム
  2. node.js

[解決済み] Nodeストリームのendイベントとfinishイベントの違いは何ですか?

2023-07-06 20:56:32

質問

Node.jsのストリームは、以下の両方をトリガーします。 endfinish のイベントを開催しています。両者の違いは何ですか?

どのように解決するのですか?

endfinish は、異なるタイプのStreams上で同じイベントBUTです。

  • stream.Readable 火災のみ end そして、決して finish
  • stream.Writable 発射のみ finish で、決して end

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

なぜ同じイベントに異なる名称をつけるのですか?

私が思いつく唯一の理由は、二重ストリーム( stream.Duplex ) を実装しているためです。 stream.Readablestream.Writable のインターフェース( https://nodejs.org/dist/latest-v5.x/docs/api/stream.html#stream_class_stream_duplex ) は、読み出し可能なストリームと書き込み可能なストリームが同時に存在します。ストリームの読み込みの終了と書き込みの終了を区別するためには、別のイベントを発生させる必要があります。したがって、Duplex ストリームでは end は読み込みの終了、そして finish が書き込みの終了です。