gpt4 book ai didi

android - rxJava 中 doOnSuccess 与 onSuccess 的用例是什么

转载 作者:行者123 更新时间:2023-11-29 16:31:13 48 4
gpt4 key购买 nike

我对 rxJava 中 doOnSuccess 的用例感到困惑。
让我们看看代码:

案例一:

networkApi.callSomething()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnSuccess(__ -> showLog(SUCCESS))
.doOnError(__ -> showLog(ERROR))
.subscribeBy(
onSuccess = {//Do something},
onError = {//Show log here}
)

案例二:

networkApi.callSomething()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeBy(
onSuccess = {
//Do something
showLog(SUCCESS)
},
onError = {showLog(ERROR)}
)

和往常一样,我认为情况 2 没问题。
我也在github上引用了一些源代码,我看到有些人喜欢案例1。
我试着问自己这里 doOnSuccess 的用例是什么?

有没有我们需要应用 doOnSuccess() operator 的用例?

最佳答案

Singles 和 Maybes 有一个成功信号,处理程序调用了 onSuccess 方法。不过,您通常希望在流程的各个点对成功信号产生副作用,因此可以使用 doOnSuccess 运算符。

getUserAsSingle()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnSuccess(user -> ui.showUser(user))
.flatMap(user ->
getUserFavoritesAsSingle(user)
.subscribeOn(Schedulers.io())
)
.observeOn(AndroidSchedulers.mainThread())
.doOnSuccess(userFavs -> ui.showUserFavorites(userFavs))
.flatMap(userFavs ->
updateLoginCounter(userFavs.userId)
.subscribeOn(Schedulers.io())
)
.observeOn(AndroidSchedulers.mainThread())
subscribe(newCounter -> ui.showLoginCount(newCounter),
error -> ui.showError(error));

关于android - rxJava 中 doOnSuccess 与 onSuccess 的用例是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55174860/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com