使用RxAndroid FlatMap不能按预期工作时,它不会在flatMap中执行代码

时间:2019-11-25 08:44:40

标签: retrofit rx-java rx-android flatmap concatmap

FlatMap无法正常工作-正如我所读的,FlatMap用于调用synchronous API调用,但是在我的情况下,flatMap在返回getUpdateRecentLocation函数后执行其功能

 public Single<List<LocationParcelableItem>> getUpdateRecentLocation(

   return locationRepository
              .getRecentLocations(filter)------Line 1
              .subscribeOn(Schedulers.io())------Line 2
              .flatMap(recentLocationRecordList -> { ------Line 3
                return locationRepository ------Line 4
                    .getLocations(getRecentLocationsIds(recentLocationRecordList))------Line 5
                    .map(this::convertLocationResponseToLocationItemList);------Line 6
              }).flatMap(locationParcelableItems -> {------Line 7
                return getRecentLocations(locationViewType);------Line 8
              }).map(locationParcelableItems -> {------Line 9
                return locationParcelableItems;------Line 10
              });------Line 11
  }

当编译器在上面的代码上运行时,它将不执行flatmap和Map中的代码,而直接返回而无需在flatMap内部执行代码 编译器执行第1-> 2-> 3-> 7-> 9-11行,然后返回它不执行第4-> 5-> 6-> 8-> 10

我觉得我的调度程序传递了错误,或者我应该在这里错过什么??

0 个答案:

没有答案