2017-01-11 17 views
1
val observable = Observable(...) 
    .publish 
val subscription = observable.connect 

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

doSomethingは決して呼び出されません。 RxJavaとまったく同じコードが正しく動作していました。だから私の回避策はRxScala ConnectableObservable.doOnSubscribeは決して呼び出されませんか?

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

rx-scala、scalaのどのバージョンですか? – eis

+0

RxScala 0.26.5とScala 2.11 – Wins

答えて

0

publishは、接続された観測を作成している :それが基礎となるJavaの観察可能

アップデートに伝播されることはなかった何らかの理由らしいです。これは標準Observableとは少し異なり、接続されたObservableが発光を開始するためにconnect()に電話する必要があります。ドキュメントhereを参照してください。

+0

私はconnectを呼び出しましたが、ここでは重要なことに焦点を当てるためにここでは省略しました。重要なのは、RxJavaのコードと私の回避策のコードが全く同じですが、純粋なRxScalaでは同じコードではありません。それが明確になるならば、私は接続を入れてみましょう – Wins

+1

あなたの署名に問題があるようです。 [この質問](http://stackoverflow.com/questions/36274683/why-doesnt-this-execute-the-function-given-for-rxscalas-doonsubscribe-function)を参照してください。 – JohnWowUs

+0

ありがとう、私はそれをチェックアウトし、ここで更新します。 – Wins

関連する問題