2017-05-31 93 views
1

我想控制我的訂閱,甚至在例外的存在範圍,而使用VAR我的訂閱在RxScala中管理訂閱的最佳做法是什麼?

在接收/ F#避免我會做這個

use subscription = Observable.subscribe ... 

和訂閱在離開示波器時自動處理。

斯卡拉的最佳實踐是什麼?

回答

0

我的解決方案是使用scala-arm,但我不確定是否有更好的方法來做到這一點。

我添加從認購的隱式轉換到資源,並用於管理資源機構從階形臂是這樣的:

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 
相關問題