我正在尝试稍微整理一下我的代码,而 Single
对我来说似乎是一个不错的选择,因为我正在做的事情只会发出一个结果。
我遇到了一个问题,因为我之前使用 flatMapIterable
来获取我的响应(一个列表)并对每个项目执行一些操作。我不知道如何使用 Single 实现这一目标。
getListOfItems()
.flatMapIterable(items -> items)
.flatMap(item -> doSomethingWithItem())
.toList()
如果 getListOfItems
返回一个 Observable
,这很好用,但如果我尝试让它返回一个 Single
,那我就做不到了flatMapIterable
并且看不到替代方案,有什么想法吗?
最佳答案
flattenAsObservable应该可以解决问题,它将 Single
成功值映射到 Iterable
(list),并将列表中的每个项目作为 Observable
发出。
getListOfItems()
.flattenAsObservable(new Function<Object, Iterable<?>>() {
@Override
public Iterable<?> apply(@NonNull Object o) throws Exception {
return toItems(o);
}
})
.flatMap(item -> doSomethingWithItem())
.toList()
关于android - RxJava flatMapIterable 与 Single,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42785473/