RxJava2更改API返回的Flowable对象的类型

问题描述 投票:0回答:1

DarkSkyAPI调用返回包含Forecast对象的WeeklyData对象,该对象又包含Array<DailyData>

My Repository类需要Array<DailyData>来缓存数据并将其传播到Presenter。

目前我正在调用这样的API:Flowable<Forecast> response = service.getRxWeatherResponse(params...);

我如何解开这个Flowable<Forecast>来提取Flowable<Array<DailyData>>以返回到Repository类?

谢谢。

android rx-java2 rx-android
1个回答
1
投票

得到了克里斯,谢谢!我建议您使用地图运算符。最终代码返回Observable,如下所示:

return service.getRxWeatherResponse(API cal params...)
        .map(new Function<Forecast, List<DailyData>>() {
                 @Override
                 public List<DailyData> apply(Forecast forecast) throws Exception {
                     return forecast.getWeeklyData().getDailyData();
                 }
             });

或使用lambda简化:

return service.getRxWeatherResponse(API cal params...)
        .map(forecast -> forecast.getWeeklyData().getDailyDataArray());
© www.soinside.com 2019 - 2024. All rights reserved.