gpt4 book ai didi

android - RxJava api 调用列表中的每个项目并返回扩展项目列表

转载 作者:行者123 更新时间:2023-11-29 01:21:46 24 4
gpt4 key购买 nike

我使用 Retrofit 2 并且正在学习 RxJava。我从某处下载了项目列表。我想为每个项目调用 api 并创建一个新的扩展项目列表。两个调用都返回一个 Observable。它看起来像这样:

getItemsService.getItems()
.concatMap(Observable::from)
.map(item -> new ExtendedItem(item, someOtherService.getDetails(item.somedetail)))
.toList()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(activity);

详情服务:

public interface IGetDetailsService {
@GET(BuildConfig.GET_DETAILS_ENDPOINT)
Observable<Detail> getDetails(@Query("q") String someDetail);

问题是 getDetails 返回一个 Observable,我不能用它来构造 ExtendedItem。更改 getDetails 调用以返回对象在 rxJava 链中不起作用,我猜是因为它将结果返回到主线程。我如何获得对象本身?我尝试了很多其他的东西,但到目前为止没有任何效果。

最佳答案

您可以使用 flatMap 的一种变体:

...
.concatMap(Observable::from)
.flatMap(item -> someOtherService.getDetails(item.somedetail), (item, detail) -> new ExtendedItem(item, detail))
.toList()
...

关于android - RxJava api 调用列表中的每个项目并返回扩展项目列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36423026/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com