rxJavaでのdoOnSuccessのユースケースについて混乱しています。
コードを見てみましょう:
ケース1:
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()
演算子が必要なユースケースはありますか?
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));
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加