Предположим, у нас есть 3 службы: employeeTitle, employeeName, employeeLocation.Если все сервисы трех сервисов выдают ошибку employeeTitle, employeeName и employeeLocation, то сервис выдает только 1 ошибку?Согласно документации это должно быть поведение это правильно?Что произойдет, если только employeeTitle выдает ошибку и другие службы будут успешными?Насколько я понимаю, если employeeTitle выдает исключение, тогда zip будет выбрасывать только 1 исключение, и это исключение будет ошибкой службы employeeTitle.Я на правильном пути?
-В моем коде ниже я ожидаю, что zip-ошибка появится в первом onErrorResumeNext внутри getEmployeeInfo ()
Single<Model> getCompositeEmployeeInfo(){
return Single.zip(
api.employeeTitle()
.subscribeOn(Schedulers.newThread()),
api.employeeName()
.subscribeOn(Schedulers.newThread()),
api.employeeLocation()
.subscribeOn(Schedulers.newThread()),
new Function3<EmployeeTitle, EmployeeName, EmployeeLocation>() {
@public Model apply(EmployeeTitle empTitle, EmployeeName empName,
EmployeeLocation empLocation){
//some logic
}
Single<Model2> getEmployeeInfo(){
return getCompositeEmployeeInfo()
.observeOn(AndroidSchedulers.mainThread())
.onErrorResumeNext(throwable-> {
return Single.error(throwable}//I am expecting only 1 error(if
//more than one error is thrown) from
//zip, either employeeTitle, employeeName or employeeLocation.
)
.flatMap(model -> {
//some logic
return getEmployeePreference();
.observeOn(AndroidSchedulers.mainThread())
.onErrorResumeNext(throwable -> {
return Single.error(throwable);
})
.flatMap(employeePreference -> {
//some logic
return Single.just(result);
}); } }