С RxJava (без Retrolambda), я хотел бы сделать некоторые вызовы API и заполнить мои данные с ним. Мой неполный объект - это «TvShow» со списком объектов «Сезон». Этот «сезон» пуст, и мне нужно закончить его эпизодами.RxJava and Retrofit - первые шаги с Rx
Observable<TvShow> getDataTVShow(long idTvShow)
//get TvShow with empty seasons (except season number)
Observable<Season> getDataSeason(long idTvShow, int seasonNumber);
//get one complete season with episodes
Так что я хочу:
- Получить мой 'TvShow' объект (OK)
- перебрать сезонов (Список < \ Сезон>) от моего объекта 'TvShow' и сделать для каждого сезона призыв API, чтобы мой сезон был полностью завершен и обновил мой «старый» сезон в списке.
- Тогда, как только у нас все, что нужно, сохранять данные в базу данных (абонентская часть)
До сих пор я только нет:
Observable<TvShow> = apiService.getDataTvShow(idTvShow)
мне сейчас нужно перебрать сезонов, я пытался использовать оператор 'map' для переключения с объекта 'TvShow' на мой список сезонов (tvShow.getSeasons()), но я не уверен, что буду в хорошем смысле. Кроме того, я знаю, что «doOnNext» будет использоваться для обновления моего «старого» сезона, вот и все.
Я пытался работать с этим хорошим примером: Handling lists with RxJava and Retrofit in android, но я до сих пор застрял :(
Если вы можете помочь мне решить эту проблему, было бы здорово :)
Большое спасибо zella, он работает !! Я не знал, что мы можем работать над тем, что мы возвращаем (возвращаем Observable.from ...), а затем возвращаемся в конце с Observable. Кстати, теперь я понимаю, почему используются лямбды, огромная разница с моим шаблоном! –
Добро пожаловать в функциональный мир:) – zella
Вы можете использовать '.toList()' вместо метода 'collect' – dwursteisen