【发布时间】:2019-08-06 01:49:54
【问题描述】:
我对 rxJava 中 doOnSuccess 的用例感到困惑。
我们来看代码:
案例一:
networkApi.callSomething()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnSuccess(__ -> showLog(SUCCESS))
.doOnError(__ -> showLog(ERROR))
.subscribeBy(
onSuccess = {//Do something},
onError = {//Show log here}
)
案例 2:
networkApi.callSomething()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeBy(
onSuccess = {
//Do something
showLog(SUCCESS)
},
onError = {showLog(ERROR)}
)
正常情况下,我认为案例 2 没问题。
我还在 github 中引用了一些源代码,我看到有些人喜欢案例 1。
我试着问自己这里doOnSuccess 的用例是什么?
有没有我们需要应用 doOnSuccess() 运算符的用例?
【问题讨论】:
-
doOnSuccess 是一次性回调方法,而 onSuccess 是来自 subscribeBy 的 doOnSuccess 的 Lamda 表达式。
标签: android retrofit rx-java rx-kotlin