Meladバジル
私は、ソースコードファイルを見直し、一定で見つかっています私たちはの使用法を変更することをコミット
.doOnSuccess(response -> logBodyAsJSON(response ));
に
.doOnEach(response -> logBodyAsJSON(response ));
私はそれを行うための明確な理由を見つけることができません。
だから私はそれらのそれぞれを使用する必要があり、かつその使用の場合にはdoOnSuccessとdoOnEachの違いは何ですか?
医者:
doOnSuccess
その名前が示すように、唯一成功した項目とき、あなたの観察可能なリターン呼び出され、エラーは発生しません。そのように、あなただけの確認応答を記録します。
また、doOnSuccessがために働くシングル単一の項目のみを発することができるかMaybes、(あなたはそうdoOnNextを使用します)。あなたが複数のアイテムを発することができた観測を使用する場合は、使用したいdoOnNext
とまったく同じ動作を持っています。
doOnEach
観測可能発しアイテム、エラーかどうかに呼び出されます。これは、代わりにアイテム自体の通知を受け取ります。それが呼び出されます。
- シングルのためにするonSuccessとのonError
- 典型的な観察可能なためonNext、onCompleteのとのonError
これは、観察可能なアイテムが観測へのシングルから変化している可能性が高いです。また、なぜあるだけでなく、成功、とエラーを記録することができるようにする必要性が存在しますdoOnNext
選ばれていなかったし。