RxJavaで一つ前の川で受信用のobservableをflatmapとかで設定して、その直後で送信処理するみたいな事書きたい
こういう事がしたかった。
doAfterNextを使うと解決出来そうだった。サンプルコードはこちら
publishSubject.onNextのとこらへんで送信開始処理みたいなのを行うイメージ
val publishSubject = PublishSubject.create<Int>()
Observable.just(1)
.doAfterNext {
println("doAfterNext")
publishSubject.onNext(it * 2)
}
.flatMap {
println("receive start")
publishSubject
}
.subscribe({ println(it) })
出力結果はこちら
receive start
doAfterNext
2
- flatMapでpublishSubjectが設定される
- その後doAfterNextが呼ばれて、publishSubjectで1 * 2が流される
- subscribeしてるところで2がとれる
という事で無事に出来ました。もうちょっと早く気がついてたらもっといい川を書けてたかもしれない。