是否可以在`zipWith`运算符内订阅?

时间:2017-02-27 04:53:42

标签: android rx-java2

我正在使用RxJava2并拥有像这样的Flowable函数

Flowable1
  .doOnNext()
  .toList()
  .onErrorReturnItem()
  .zipWith(Flowable2
             .toList()
             .onErrorReturnItem()){
         condition1 -> return list1
         condition2 -> return list2

         return list3
   }
  .flattenAsFlowable()
  .flatMap()

zipWith运算符中,我有条件根据结果返回不同的列表。实际上,最终的flatMap仅适用于list3。但我仍然无法在继续序列的同时制定如何将其放在zipWith()运算符中。我想我仍然需要订阅,如果我将它包装在zipWith运算符中,这将导致混乱的线程

有办法吗?

1 个答案:

答案 0 :(得分:0)

几个小时后,我终于制定了一种方法,从zipWith中的可流动列表中返回:

Flowable1
  .doOnNext()
  .toList()
  .onErrorReturnItem()
  .zipWith(Flowable2
             .toList()
             .onErrorReturnItem()){
         condition1 -> return list1
         condition2 -> return list2

         return Flowable.fromtIterable(list3)
                    .flatMap()
                    .toList()
                    .blockingGet()
   }
  .flattenAsFlowable()