尝试将zip
运算符与Maybe
的列表一起使用,但遇到了一些问题:
1)我有Posts
,有两种数据类型,分别为Video
,Image
和Audio
。
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。
那么我该如何处理呢?