1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RxJS の複数のobservable をまとめる関数の動作確認して理解を深めるまで

Posted at

前置き

複数のobservable をまとめる関数について、気になったあれこれを調べて動作確認をしたのでそのメモ。
確認した関数は以下の通り。

  • race
  • forkJoin
  • merge
  • combineLatest
  • zip
  • concat

(下記ページのI have some Observables to combine together as one Observable, andを押して遷移後にある関数)

確認方法としては、下記ページを作成し、console.log の出力を見て確認した。

なお、確認した関数にはObaservable 以外にも適用できるが、今回はObaservable についてのみ確認した。

本編

race

一口メモ:最初に値を流してきたObaservable のみを使用する。それ以外は無視する。

forkJoin

一口メモ:すべてのObservable がcomplete したら、最後の値のみを配列にまとめて後続に流しcomplete する。

補足:値を流す前にcomplete したObservable があった場合、すぐにcomplete する。

merge

一口メモ:特にひねりとかなく、流れてきた値をそのまま後続に流す。

補足:すべてのObservable がcomplete したらcomplete する。

combineLatest

一口メモ:値が流れてきたら、そのタイミングで最後の値を配列にまとめて後続に流す。

補足1:すべてのObservable から1回でも値が流れてくるまでは何もしない。
補足2:すべてのObservable がcomplete したらcomplete する。

zip

一口メモ:すべてのObservable からn回値が流れてきたら、それぞれのn回目の値を配列にまとめて後続に流す。

補足1:すべてのObservable から1回でも値が流れてくるまでは何もしない。
補足2:1つでもObservable がcomplete し、後続に値を流せなくなったらcomplete する。

concat

一口メモ:順番にObservable を処理していく。

補足1:処理していないObservable から値が流れてきても無視する。
補足2:すべてのObservable がcomplete したらcomplete する。

感想

楽しかった。
1口メモを書くのが一番難しかった。
そして、結局補足も書かないと表現できなかった。

今回の記事は以上です。

前回記事はこちら

詳細見たい人はこちら

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?