回答編集履歴

1

追記

2019/05/23 10:25

投稿

karamarimo
karamarimo

スコア2551

test CHANGED
@@ -19,3 +19,7 @@
19
19
 
20
20
 
21
21
  Aのデータが尽きて`end`イベントが発生すると、pipeされたBでいずれ[`finish`イベント](https://nodejs.org/api/stream.html#stream_event_finish)が発生する(ことが期待される)ので、このタイミングでresolveすればいいことになります。同様に、エラーが発生すると[`error`イベント](https://nodejs.org/api/stream.html#stream_event_error)が発生するのでこのときにrejectすればいいです。promiseと異なりstreamは`.on`でイベントリスナーを設定するので、質問文にあるコードのようになります。
22
+
23
+
24
+
25
+ `end`イベントもリッスンしている理由は、writable streamでもreadable streamでも`streamPromise`を使えるようにするためだと思われます。