SingleのdoOnSuccessとmapの挙動を確認する

RxJavaのdoOnSuccessとmapの挙動を確認した時のコード。doOnSuccessで加工してもmapには渡らないので気をつける

val single = Single.fromCallable {
    Thread.sleep(1000)
    listOf(1, 2, 3, 4, 5)
}.doOnSuccess {
    Log.d("MainActivity", "doOnSuccess $it")
    it.filter { num ->
        num >= 3
    }
}.map {
    Log.d("MainActivity", "map$it")
    it.map {
        it + 2
    }
}
Log.d("MainActivity", "blockingGet ${single.blockingGet()}")
2019-06-11 13:40:32.448 7144-7144/com.github.chiiia12.rxjavasample D/MainActivity: doOnSuccess [1, 2, 3, 4, 5]
2019-06-11 13:40:32.448 7144-7144/com.github.chiiia12.rxjavasample D/MainActivity: map[1, 2, 3, 4, 5]
2019-06-11 13:40:32.449 7144-7144/com.github.chiiia12.rxjavasample D/MainActivity: blockingGet [3, 4, 5, 6, 7]

ref: https://medium.com/@dbottillo/rxjava-a-story-about-delay-and-schedulers-a5afc6e5c7fc