假设我们有3个服务, employeeTitleemployeeNameemployeeLocation . 如果所有服务三个服务抛出错误 employeeTitleemployeeNameemployeeLocation 服务只会抛出1个错误?根据文档,这应该是行为是正确的吗?如果只有 employeeTitle 抛出错误而其他服务成功会发生什么?根据我的理解,如果 employeeTitle 抛出异常,那么zip仍然只会抛出1个异常,这个异常将是 employeeTitle's 服务错误 . 我是在正确的轨道吗?

  • 在我的下面的代码中,我期待在 getEmployeeInfo() 内的第一个 onErrorResumeNext 中出现zip错误 .
Single<Model> getCompositeEmployeeInfo(){ return Single.zip(
     api.employeeTitle().subscribeOn(Schedulers.newThread()),
     api.employeeName().subscribe(Schedulers.newThread()),
     api.employeeLocation().subscribe(Schedulers.newThread()),
     new Function3<EmployeeTitle, EmployeeName, EmployeeLocation>() {

     @public Model apply(EmployeeTitle empTitle, EmployeeName empName,
                         EmployeeLocation empLocation){
      //some logic
     }

Single<Model2> getEmployeeInfo(){  
return getEmployeeInfo().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);
           });  } }