2017-08-14 1 views

Répondre

2

Vous pouvez utiliser l'opérateur retry() pour vous réabonner automatiquement immédiatement. Vous pouvez également utiliser l'opérateur retryWhen() pour vous réabonner après un délai ou uniquement sous condition.

observable 
    .retryWhen(error -> error.flatMap(e -> Observable.timer(1, SECONDS)) 

réessayer l'abonnement après 1 seconde. En utilisant flatMap() vous pouvez également tester le type d'erreur et seulement réessayer sur une erreur particulière.

observable 
    .retryWhen(error -> error.flatMap(e -> { 
    if (e instanceof IOException) {return Observable.timer(1, SECONDS);} 
     return Observable.just(e); 
    }) 

une nouvelle tentative si l'erreur est IOException et non pour tout autre type d'erreur.