У меня есть следующий сценарий. Я получаю данные с сервера с помощью Retrofit2. Я хочу загрузить Collection<Account>
из Account
объектов, и для каждой из этих учетных записей для загрузки Collection<Project>
из Project
объектов. В конце я хочу получить Map<Account, Collection<Project>> accountsWithProjects
.Трансформация 2 RxJava Наблюдает за 1 Карта
У меня есть следующие методы:
Observable<Collection<Account>> requestAllAccounts()
Observable<Collection<Project>> requestProjectsInfoForTempoAccount(Account accunt)
Вопрос: Можно ли сжать или создать как-то итерация этих двух реактивных потоков и собрать все элементы к карте?
Я также могу получить коллекцию проектов для учетной записи синхронно, если это помогает, однако не может сделать это на главной теме, так как разработка для Android и результат должен наблюдаться в основном потоке.
Спасибо, есть только одна проблема, которую я пытаюсь решить. Наблюдаемый вами объект испускает множество экземпляров 'Map>'. Каждый экземпляр имеет только один Map.Entry. Есть ли способ объединить их все на одной карте перед подпиской? –
Вы уверены? Если функции 'requestAllAccounts()' и 'requestProjectsInfoForTempoAccount (Account accunt)' возвращают коллекции только один раз (один 'onNext (...)' call), он должен работать как ожидалось. –
Да, извините, верно. Я попытался переписать его с помощью лямбда и что-то испортил. Еще раз спасибо! –