Для каждого элемента в этом списке мне нужно получить подробную информацию об элементе. Чтобы получить подробную информацию, мне также нужно выполнить асинхронные вызовы API.
В конце концов мне нужно вернуть исходный объект.
Мой код выглядит так:
Код: Выделить всё
mDataRepository.getSearchResult(String.valueOf(searchQuery))
.subscribeOn(SchedulerFactory.get().getContentScheduler())
.filter(searchResultList - > searchResultList != null &&
searchResultList.contents != null &&
searchResultList.contents.list != null)
.map(searchResultList - > {
Arrays.stream(searchResultList.contents.list)
.filter(Objects::nonNull)
.collect(Collectors.toList())
.forEach(contentItem - > {
if (VLOG_TYPE == contentItem.type) {
Vlog vlog = mDataRepository.getVlogInfo(contentItem.type)
.defaultIfEmpty(new Vlog())
.blockingFirst(); // has to go away
contentItem.description = vlog.description;
}
});
return searchResultList;
});
Проблема в том, что я не знаю, как это переделать, потому что это цепочка методов выше и ниже этого вызова.
Мысли?
Подробнее здесь: https://stackoverflow.com/questions/789 ... -as-result
Мобильная версия