Obsarvable.just()に気をつけろ!
適当な値でsubscribeしたい時justは便利ですが、動きを理解していないで使うのは危険です!
結論から言うとjustを使うとonNextとonCompleteがほぼ同時に帰ってきます。わかっていれば問題ないですが、わかっていないと私のようにハマります。
失敗例
こんな感じのコードを書いてしまっていました。
hogeメソッドを購読してる部分でonNextやonCompleteを省略してしまっていました。
この場合subscribeの中のprint文が2回呼び出されてしまします。
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
hoge().subscribe({ _ in
print("呼ばれたよ!")
})
}
func hoge() -> Observable<Int> {
return Observable.just(1)
}
}
こうしよう!
onNextを指定してやれば呼び出しは1回になります。onCompleteを増やすとそちらにも入ります。
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
hoge().subscribe(onNext:{ _ in
print("呼ばれたよ!")
})
}
func hoge() -> Observable<Int> {
return Observable.just(1)
}
}