RxSwiftのコールド備忘録1
はじめに
RxSwiftのHot・Coldについてなかなか覚えられないので、アウトプットして覚えていくことにしました。
備忘録としてなので、あまり参考にならないかと思います。悪しからず。
RxSwiftにおけるHot・Coldとは?
RxSwiftにおけるObservableにはHot/Coldという性質があります。
Hot
subscribeしなくてもストリームが流れ出る。いわゆる垂れ流し状態。
Cold
subscribeしないとストリームが流れない。手動操作(subscribeが必要)の状態。
Coldの簡単な例
これは何が出力されるでしょうか?
let observable = Observable.of(1,2,3,4,5,6,7)
.map { value in
print(value)
}
パッと見ですと 1,2,3,4,5,6,7
が出力されそうですが、
実はこれは何も流れません。
mapを含め、ほとんどのオペレータはコールドなので、subscribeするまでストリームは流れません。
observable
.subscribe(onNext: { value in
print(value)
})
.disposed(by: disposeBag)
subscribeすることでストリームは流れます。
当たり前ですが、とても重要なのでまずはColdについての備忘録でした。
Hotについてはまたの機会に。
Author And Source
この問題について(RxSwiftのコールド備忘録1), 我々は、より多くの情報をここで見つけました https://qiita.com/kazy_dev/items/0052889458c7b722640c著者帰属:元の著者の情報は、元の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 .