web-dev-qa-db-ja.com

Nodeストリームの終了イベントと終了イベントの違いは何ですか

Node.jsストリームは、endイベントとfinishイベントの両方をトリガーします。両者の違いは何ですか?

57
Simon Boudrias

endおよびfinishは、異なるタイプのストリームでの同じイベントです。

  • stream.ReadableendとNEVER finishのみを起動します
  • stream.WritablefinishとNEVER 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は書き込みの終わりです。

98
tiblu