在我的应用中,我一次检索到10个项目列表,直到没有更多可用项目为止。我需要按顺序处理每个项目。如果我正确理解,可以使用RxJava中的Observable.just或Single完成。我不清楚该选择哪一个,甚至是否有所作为。
还是我完全错了,这些都不适合吗?
答案 0 :(得分:1)
如果要对列表的每个项目执行操作,则可能需要Observable
。顾名思义,Single
用于一次发射。
请考虑以下内容:
List<String> items = new ArrayList<>(10);
// lets say this array list is already populated
Observable.fromIterable(items)
// the map operator handles each emission individually
.map(String::length)
.subscribe(System.out::println);
如果我们改用Single
,它看起来像:
Single.just(items)
.toObservable()
.flatMapIterable(strings -> strings)
.map(String::length)
.subscribe(System.out::println);
在这里您可以看到我们有items
的单个发射,但是为了处理列表中的每个字符串,我们都需要将其转换为该列表上的可观察且平坦的地图,因此我们得到了每个列表中的元素。本质上,这只是直接使用Observable
的粗俗版本
现在,如果我们将其扩展为检索一批数据(以10为一组),则将应用相同的原理。这取决于您如何检索这些批次,以便确切地说出它将如何与创建Observable
挂钩。