RxSwiftのsubscribeOn、observeOnの意味を整理する
なにこれ
subscribeOn
, observeOn
について、以前ややこしいなあと思った記憶があるのでかんたんに整理しておきます。
subscribeOn
について
なぜObservable(Cold)の実行スレッドはsubscribeOn
で設定するのか
ColdなObservableはsubscribe
して初めてObservableのイベントを発火します。
つまりColdなObservableにおいては、購読≒イベント実行といえます。
よって、subscribeOn
は、Observableのイベント実行スレッドを決定するという意味になります。
なぜHotのObservableは実行スレッドを変更できないのか
HotなObservableでは、購読の有無にかかわらずObservableがイベントを発行します。
購読前にすでにイベントの実行を行っているため、subscribeOn
ではObservableの実行スレッドを変更することは出来ません。
observeOn
について
なぜsubscribe内の実行スレッドはobserveOn
で設定するのか
一方で、observeOn
は、「Observerが」どこでイベントを観測するかという意味になります。
ObserverとObservableの意味をごちゃごちゃにしないことがポイントかと思います。
Observableはイベントを発行するもので、Observerは発行されたイベントを副作用として処理するものです。すなわち、雑な言い方をすると、Observerはsubscribe内で、イベントを観測し、UIの変更などを行う部分になります。
よって、observeOn
はsubscribe
内のObserver
実行スレッドを決定すると考えることが出来ます。
Author And Source
この問題について(RxSwiftのsubscribeOn、observeOnの意味を整理する), 我々は、より多くの情報をここで見つけました https://qiita.com/kmagai/items/334b4dfaa70bcf2db173著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .