RxJava2 изменяет тип объекта Flowable, возвращаемого API - PullRequest
0 голосов
/ 11 сентября 2018

Вызов DarkSkyAPI возвращает Forecast объект, содержащий WeeklyData объект, который, в свою очередь, содержит Array<DailyData>.

Классу моего репозитория требуется Array<DailyData> для кэширования и распространения данных в Presenter.

В настоящее время я вызываю API следующим образом: Flowable<Forecast> response = service.getRxWeatherResponse(params...);.

Как мне развернуть этот Flowable<Forecast>, чтобы извлечь Flowable<Array<DailyData>> для возврата в класс репозитория?

Спасибовы.

1 Ответ

0 голосов
/ 18 сентября 2018

Понял, Крис, спасибо!Я использовал оператор карты, как вы посоветовали.Конечный код возвращает 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();
                 }
             });

Или упрощается с помощью лямбды:

return service.getRxWeatherResponse(API cal params...)
        .map(forecast -> forecast.getWeeklyData().getDailyDataArray());
...