Мне нужно проверить 7 полей перед вызовом остальных. Каждая проверка является единственной наблюдаемой, которая выдает ошибку, если строка не соответствует правилам. В методе onError
мне удается в каком поле отображать сообщение об ошибке и текст этого сообщения. Проблема в том, что я не знаю, как проверить таким образом все поля в zip, например, не останавливая другие observables, когда некоторые из них выдают ошибку, а в zip проверить, была ли хотя бы одна ошибка, чтобы предотвратить вызов rest.
Android RxJava2 множественная проверка EditText
comment
Можете ли вы добавить код?
- person GVillani82   schedule 20.04.2017
comment
К сожалению нет. Я постараюсь описать проблему как можно яснее.
- person Near1999   schedule 20.04.2017
Ответы (1)
Вы можете использовать оператор onErrorReturn()
, чтобы вернуть определенный элемент, который будет выдан, когда он обнаружит ошибку.
Например, если у нас есть две наблюдаемые, и первая дает сбой, а вторая нет, у вас будет что-то вроде этого, и сообщение журнала будет напечатано.
Observable.zip(Observable.error(new Throwable())
.onErrorReturn(throwable -> Result.fail()),
Observable.just(new Result("body")),
(BiFunction<Object, Result, Object>) (o, result) -> result)
.subscribe(o -> Log.d("test","both observables completed."));
person
GVillani82
schedule
20.04.2017