Nel mio ultimo progetto, utilizzo rxJava e mi rendo conto che observable.doOnError('onErrorCallback').subscribe(action)
e observable.subscribe(action, 'onErrorCallback')
si comportano in modi diversi. Anche dai documenti non è ovvio per me qual è esattamente la differenza tra loro e quando dovrei usare la prima e la seconda variante.RxJava: qual è la differenza tra i callback in doOnError ('callback') e subscribe (*, 'callback')
16
A
risposta
21
L'operatore doOnError
permette di iniettare effetto collaterale nella propagazione di errore di una sequenza, ma non impedisce la propagazione dell'errore stesso. Il Sottoscrittore è la destinazione finale degli eventi e "escono" la sequenza.
Si può vedere l'utilità di doOnError
con il seguente esempio:
api.getData()
.doOnError(e -> log.error(e))
.retry(2)
.subscribe(...)
Esso consente di sbirciare in errore, ma consente di riprovare in caso di errore. Con un utente finale:
api.getData()
.subscribe(v -> {}, e -> log.error(e));
Dovete organizzare la gestione dell'errore (oltre al logging) sulla propria strada.
0
Secondo la documentazione doOnError
non funziona per impostazione predefinita su un particolare Scheduler
Problemi correlati
- 1. Qual è la differenza tra il callback e la promessa
- 2. Qual è la differenza di prestazioni tra blocchi e callback?
- 3. Qual è la differenza tra hook e callback?
- 4. Qual è la differenza tra chiamate asincrone e callback
- 5. Differenza tra gestori di eventi e callback
- 6. Chiusura e callback
- 7. callback() o ritorno callback()
- 8. Qual è la differenza tra: before_save e: before_update Callback di Active Record?
- 9. La funzione callback e la comunicazione tra processi sono uguali?
- 10. Qual è la differenza tra response.body() e oggetto restituito dal callback?
- 11. Differenza tra callback client e metodi pagina Ajax - ASP.NET
- 12. NSOperation e NSOperationQueue callback
- 13. Scorrimento infinito e callback
- 14. Jquery - fancybox e callback
- 15. Osservatori e callback
- 16. callback asincroni
- 17. Come evitare di accumulare callback o "callback hell"?
- 18. callback Delphi?
- 19. funzione delegate vs funzione callback
- 20. callback personalizzati in VBA
- 21. I callback sono sempre asincroni?
- 22. jQuery.getJSON (url, [i dati], [callback])
- 23. callback in Android?
- 24. GWT JSNI supporta i callback?
- 25. Come funziona RxJava doOnError e onErrorReturn?
- 26. Meccanismo di callback Nodejs - quale thread gestisce il callback?
- 27. Attendi più callback
- 28. MockWebServer e Retrofit con callback
- 29. Rspec e callback 'before_validation' emette
- 30. Meteor collection.insert callback emette
Questo vale anche per subscribe(), ma penso anche che sia irrilevante per la domanda dell'OP. – akarnokd