每当我同时使用 subscribeOn 和 publishOn 时,都不会打印任何内容。如果我只使用一个,它将打印。如果我使用 subscribeOn(Schedulers.immediate()) 或弹性它可以工作。知道为什么吗?
据我了解,publishOn 会影响它发布的线程并订阅订阅者运行的线程。你能指出我正确的方向吗?
fun test() {
val testPublisher = EmitterProcessor.create<String>().connect()
testPublisher
.publishOn(Schedulers.elastic())
.map { it ->
println("map on ${Thread.currentThread().name}")
it
}
.subscribeOn(Schedulers.parallel())
.subscribe { println("subscribe on ${Thread.currentThread().name}") }
testPublisher.onNext("a")
testPublisher.onNext("b")
testPublisher.onNext("c")
Thread.sleep(5000)
println("---")
}