Sto creando una sequenza osservabile e sono fondamentalmente alla ricerca di un modo piacevole per interrompere la catena se una condizione non viene soddisfatta. Idealmente potremmo attraverso un errore in questo scenario. Questo è fondamentalmente rimuovere un'istruzione if/else in un operatore flatmap. Questo è qualcosa di simile che ho operatori oraRxJava Break Chain on Conditional
flatMap(new Func1<User, Observable<Response>>() {
@Override
public Observable<Response> call(Result result) {
if(isValid(result))) {
return api.getObservableResponse(); //some retrofit observable
} else {
observer.onError();
return null; //??? I guess this would force an error
}
}
})
che ho visto come il filtro() e tutti gli altri condizionali, ma non sono sicuro se qualcuno di loro soddisfare le mie esigenze. C'è un modo migliore per farlo? O è quello che sto cercando bene? Grazie!
'return Observable.error (exception)'? – Than
@Than immagino che possa forzare un errore. Sono più alla ricerca di una sorta di metodo che riesco a combinare per rimuovere completamente l'if/else, se esiste. –
Perché non filtrare le condizioni prima di applicare flatMap? – JohnWowUs