2017-02-10 27 views
1

我剛剛學習RxJava 2,並且在重構代碼以使用Single而不是Observable後,我發現Single未實現doAfterTerminate()爲什麼在RxJava 2的單個<>中缺少doAfterTerminate()?

這看起來對我來說是一個疏忽,因爲所有Flowable,CompletableMaybe類型似乎都實現doAfterTerminate()

什麼給?

+2

看起來就像是被忽視的,PR的歡迎。 – akarnokd

+2

@HolySamosa,我爲所提到的功能創建了一個PR(https://github.com/ReactiveX/RxJava/pull/5093),所以希望它可以在下一個版本中使用。 – Vesko

+0

@Vesko謝謝!非常感激。 – HolySamosa

回答

1

的確,這個操作員由於缺乏需求而缺失。 PR#5093增加了它,並將成爲本週三到期的RxJava 2.0.6的一部分。

最接近的解決方法直到此時doFinally

Single.just(1).doFinally(() -> System.out.println("Done")).subscribe(); 

Single.error(new IOException()).doFinally(() -> System.out.println("Done")).subscribe(); 

Single.never().doFinally(() -> System.out.println("Done")).subscribe().dispose(); 
0

現在,因爲RxJava已經更新,你可以在你的代碼更新RxJava2版本。在那一刻,最後的版本是2.1.0,所以這行添加到您的模塊的build.gradle

compile 'io.reactivex.rxjava2:rxjava:2.1.0'