2017-05-31 3 views
1

私はこのRxScalaでサブスクリプションを管理するベストプラクティスは何ですか?

use subscription = Observable.subscribe ... 

を行うだろうRxの/ F#の私のサブスクリプション

ためVARを使用して回避しながら、私のサブスクリプションのためにも例外の存在下での範囲を制御したいとサブスクリプションがありますスコープを離れるときに自動的に処理されます。

Scalaのベストプラクティスは何ですか?

答えて

0

私の解決策はscala-armですが、もっと良い方法があるかどうかはわかりません。

私は、リソースへのサブスクリプションからの暗黙的な変換を追加し、次のようにScalaの腕から管理対象リソース・メカニズムを使用:

object ResourceImplicits { 
    implicit val subscription2Resource = new Resource[Subscription] { 
    override def close(s: Subscription): Unit = s.unsubscribe() } 
} 

//... 

for (s <- managed(obs.subscribe { n => println(s"n=$n")})) { 
    // the subscription is alive in this scope 
    // ... 
} 
//the subscription has been unsubscribed 
関連する問題