RxJava:将单个项的流转换为列表

时间:2017-02-24 10:44:43

标签: android rx-java rx-android rx-java2

我正在试图弄清楚如何获取返回项目列表的响应,然后对每个将返回对象的项目发出请求,然后将所有响应组合到列表中。

我通过一次发射它们来实现它,但我想将它们全部打包回列表中。

到目前为止我有这个

getListOfData()
.flatMapIterable(list -> list)
.flatMap(item -> getData(item)

我尝试过toList()但是我知道这需要一个完整的信号才能返回任何东西。

我正在使用rxjava 2,我觉得我在带有toList()的rxjava 1中做了这个,并且它按预期工作。任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:0)

尝试使用fromIterable代替flatMapIterable,然后toList()应该有效

答案 1 :(得分:0)

这会有用吗?

getListOfData()
.flatMapIterable(list -> list)
.flatMap(item -> getData(item))
.flatMap(itemList -> Observable.from(itemList)) // <-- magic here. Maps each result List<Something> to Observable<Something>

答案 2 :(得分:0)

神秘解决了。

我的原始示例适用于toList()

问题是我没有在我onComplete PublishSubject上拨打onNext我正在做PublishSubject我可能不会使用@ColumnTransformer( forColumn="test", read="pgp_sym_encrypt(test::bytea, 'mySecretKey')", write="pgp_sym_decrypt(?, 'mySecretKey')") private String test; 如果我不想发出多少东西?