RxJava 迭代列表,为每个项目调用 API,并返回列表作为结果?

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

我必须调用一个

API
,它返回一个对象,在这个对象内部,有一个
list
。 对于这个
list
中的每一项,我都必须检索
item details
。要检索
details
,我还必须进行异步
API
调用。 最后,我需要归还原来的
object

我的代码如下所示:

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;
    });

我被要求删除

.blockingFirst();
并重新设计逻辑。 问题是,我真的不知道如何修改它,因为它是此调用上方和下方的方法的
chain

想法?

android rx-java
1个回答
0
投票

您可以使用平面图来检索项目详细信息(执行异步 API 调用)。 请参阅此文档了解更多详细信息,此处是一个示例。

© www.soinside.com 2019 - 2024. All rights reserved.