【发布时间】:2020-08-09 20:40:01
【问题描述】:
为什么subscribe 从来不在这里打印任何东西?只是出于好奇。无论如何,这都是不好的做法:我通常会改用observeOn。但是,我无法弄清楚为什么永远无法到达 subscribe...
val subject: PublishSubject<Int> = PublishSubject.create()
val countDownLatch = CountDownLatch(1)
subject
.map { it + 1 }
.subscribeOn(Schedulers.computation())
.subscribe {
println(Thread.currentThread().name)
countDownLatch.countDown()
}
subject.onNext(1)
countDownLatch.await()
【问题讨论】:
-
您确定要减少
println()语句之前的计数器吗?您的主线程可能会在println()语句执行之前终止。 -
没错,那是错误的,但这不是问题所在。尝试运行该代码,你会发现它永远不会到达
subscribe