RxSwift疑問
めちゃめちゃメモ
map と flatMap 違い
map
流れて来る本来のイベントの値を加工
flatMap
流れて来る本来のイベントの値を加工した上で、任意のObservabl型を返す関数
bind
ObservableとObservableをくっつける
Errorをスルー
.of(), .just()
どっちもObservableを簡単に生成するメソッド。
createでもいい。
justは1個、ofは複数可能。
just
justは引数で渡した値1つをただ返すだけのObservableを作成するメソッド
of
ofは引数で渡した値全部をただ返すだけのObservableを作成するメソッド
ライフサイクル
Hot Cold
Hot
Hot
acceptで発火
SubjectはHot
1対多
Cold
subscribeすると発火
一旦、Subject以外は基本Coldと思っていい
1対1(複数Subscribeできるけど別々のStreamになる)
Scheduler
observeOn
次の処理を引数のスレッドで実行
subscribeOn
前の処理を引数のスレッドで実行
Coldでしか使えないよ
Driver
Driverを使用することで購読する側に
- メインスレッドで通知
- shareReplayLatestWhileConnected を使った Cold-Hot 変換
- onError 通知しない
を強制することができます。
参考:https://qiita.com/k5n/items/44ef2ab400f47fb66731
bind と subscribeの違い
subscribeの便利なやつがbind。
onNextしかない。ErrorもCompletedもない
Observableをnilでフィルタしてアンラップするときどうしたらいい?
filterNil() みたいなExtension追加しよ
extension ObservableType where Element: OptionalType {
func filterNil() -> Observable<Element.Wrapped> {
return flatMap { item -> Observable<Element.Wrapped> in
if let value = item.value {
return .just(value)
} else {
return .empty()
}
}
}
}
Author And Source
この問題について(RxSwift疑問), 我々は、より多くの情報をここで見つけました https://qiita.com/rd0501/items/73e92bd49dfaea38e5ec著者帰属:元の著者の情報は、元の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 .