In meinem letzten Projekt, verwende ich rxJava und ich merke, dass observable.doOnError('onErrorCallback').subscribe(action)
und observable.subscribe(action, 'onErrorCallback')
verhalten sich auf unterschiedliche Weise. Auch von Docs ist es für mich nicht offensichtlich, was genau der Unterschied zwischen ihnen ist und wann ich die erste und zweite Variante verwenden soll.RxJava: was für einen Unterschied zwischen Rückrufe in doOnError ist (‚Rückruf‘) und abonnieren (*, ‚Callback‘)
16
A
Antwort
21
Der doOnError
Operator ermöglicht es Ihnen, Nebenwirkung in die Fehlerausbreitung von einer Sequenz zu injizieren, aber die Fehlerfortpflanzung nicht selbst zu stoppen. Der Abonnent ist das endgültige Ziel der Ereignisse und sie "verlassen" die Sequenz.
Sie können den Nutzen von doOnError
mit dem folgenden Beispiel sehen:
api.getData()
.doOnError(e -> log.error(e))
.retry(2)
.subscribe(...)
Es Sie in den Fehler spähen ermöglicht aber können Sie im Falle eines Fehlers wiederholen. Mit einem Endteilnehmer:
api.getData()
.subscribe(v -> {}, e -> log.error(e));
Sie müssen die Behandlung des Fehlers (neben der Protokollierung) auf eigene Art arrangieren.
0
Gemäß der Dokumentation doOnError
nicht standardmäßig auf einem bestimmten Scheduler arbeitet
Verwandte Themen
- 1. Was ist der Unterschied zwischen Callback und versprechen
- 2. Was ist der Unterschied zwischen Schließungen und Rückrufen in Swift?
- 3. Was ist der Unterschied zwischen RxJava und Bolts?
- 4. Was ist der Unterschied zwischen EventBus und RxJava?
- 5. Unterschied zwischen Java Concurrency, Akka und RxJava?
- 6. RxJava: Unterschied zwischen doOnNext und doOnEach
- 7. Was ist der Unterschied zwischen reaktiven und reaktiven Streams?
- 8. Was ist der Unterschied zwischen `==` und `ist`?
- 9. Unterschied zwischen after_create, after_save und after_commit in Schienen Rückrufe
- 10. Was ist der Unterschied zwischen Model.findOne() und Model.findById() in Mongoose?
- 11. Was ist der Unterschied zwischen MQTT-Broker und Apache Kafka?
- 12. Was ist der Unterschied zwischen:.! und: r !?
- 13. Versprechungen und irreguläre Rückrufe
- 14. Was ist der Unterschied zwischen .Equals und ==
- 15. Was ist der Unterschied zwischen Difftime und '-'?
- 16. Was ist der Unterschied zwischen "Set" und "Add" für ObjectCache?
- 17. Was ist der Unterschied zwischen Verilog! und ~?
- 18. Was ist der Unterschied zwischen "Mausaufruf" und "Klick" -Ereignissen?
- 19. Was ist der Unterschied zwischen asynchronen Calls und Callbacks
- 20. Delegierte und Rückrufe
- 21. Was ist der Unterschied zwischen element.bind und element.on
- 22. Was Unterschied zwischen JavaBean und ManagedBean ist
- 23. Was ist der Unterschied zwischen/* ... */und/** ... */
- 24. Was ist der Unterschied zwischen + = und = +?
- 25. Was ist der Unterschied zwischen $ (()) und Ausdruck?
- 26. Was ist der Unterschied zwischen ::: und ++ für Listen?
- 27. Java-Callback für einen neuen Thread ausführen
- 28. Was ist der Unterschied zwischen $ und $$?
- 29. was ist der Unterschied zwischen [[], []] und [[]] * 2
- 30. Was ist der Unterschied zwischen `&` und `ref`?
Dies gilt für subscribe() als gut, aber ich denke auch, ist irrelevant für die Frage des OP. – akarnokd