1
val observable = Observable(...)
    .publish
val subscription = observable.connect

observable.doOnsubscribe(() => doSomething)
    .subscribe()

doSomething永远不会被调用。RxJava 的完全相同的代码可以正常工作。无论出于何种原因,它似乎从未传播到底层的 Java Observable

更新:所以我的解决方法是

observable.asJavaObservable
    .doOnSubscribe(new Action0 {
        override def call(): Unit = {
            doSomething
        }
    }}.asScala
    .subscribe()
4

1 回答 1

0

publish创建一个连接的 Observable。这与标准的 Observable 有点不同,您需要调用connect()以使连接的 Observable 开始发射。请参阅此处的文档。

于 2017-01-11T08:13:37.877 回答