如何处理rxJava中的Maybe和zip运算符列表

时间:2019-04-25 18:34:20

标签: java android kotlin rx-java

尝试将zip运算符与Maybe的列表一起使用,但遇到了一些问题:

1)我有Posts,有两种数据类型,分别为VideoImageAudio

2)现在我想将这些帖子上传到服务器,等待每一个帖子上传一次(是的,我可以发送数组,但这只是举例)

3)为此,我可以zip我的列表mutableListOf<Maybe<Response>并等待结果

4)在发送之前,我必须填写我的可观察物列表

posts.map {
  when(type) {
      Video -> list.add(createPost()) // Awaitng Response result

      Image -> list.add(createPost()) // Awaiting Response result

      Audio -> list.add(Maybe.empty()) // Just skip this data type
  }
}

问题是:

当我这样做

Maybe.zip(list) { arg -> arg }.flatMap{ ... }

并且我的列表中包含Maybe.empty(),则永远不会调用.flatMap,但是我需要处理其他帖子。

我尝试使用defaultIfEmpty(arrayOf()),但是即使我有数据,它也会为所有内容返回emtpy。

那么我该如何处理呢?

0 个答案:

没有答案