2015-05-15 18 views

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

+2

Questo vale anche per subscribe(), ma penso anche che sia irrilevante per la domanda dell'OP. – akarnokd