首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >RxJava并行获取可观测数据

RxJava并行获取可观测数据
EN

Stack Overflow用户
提问于 2014-10-08 12:04:54
回答 2查看 34.6K关注 0票数 56

我需要一些在RxJava中实现并行异步调用的帮助。我选择了一个简单的用例,其中第一个调用获取(而不是搜索)要显示的产品(Tile)列表。随后的调用将获取(A)评论和(B)产品图像

经过几次尝试,我来到了这个地方。

 1    Observable<Tile> searchTile = searchServiceClient.getSearchResults(searchTerm);
 2    List<Tile> allTiles = new ArrayList<Tile>();
 3    ClientResponse response = new ClientResponse();

 4    searchTile.parallel(oTile -> {
 5      return oTile.flatMap(t -> {
 6        Observable<Reviews> reviews = reviewsServiceClient.getSellerReviews(t.getSellerId());
 7        Observable<String> imageUrl = reviewsServiceClient.getProductImage(t.getProductId());

 8        return Observable.zip(reviews, imageUrl, (r, u) -> {
 9          t.setReviews(r);
10          t.setImageUrl(u);

11          return t;
12        });

13      });
14    }).subscribe(e -> {
15      allTiles.add((Tile) e);
16    });

第1行:获取要显示的产品(Tile)

第4行:我们获取可观察对象的列表,并将其分片以获取评论和imageUrls

6,7:获取可观察的评论和可观察的url

第8行:最后将两个可观察对象压缩,以返回更新后的可观察对象

第15行:最后,第15行整理了集合中要显示的所有单个产品,该集合可以返回给调用层

虽然观察点已经被切分,并且在我们的测试中运行了4个不同的线程;但获取评论和图像似乎是一个接一个的。我怀疑第8行上的zip步骤基本上导致了对两个观察值(review和url)的顺序调用。

这个小组是否有任何建议来并行获取评论和图像urls。本质上,上面附加的瀑布图应该看起来更垂直堆叠。对评论和图片的调用应该是并行的

谢谢阿南德·拉曼

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26249030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档