【发布时间】:2017-11-08 09:51:54
【问题描述】:
我做了一个 RxJava2 实验,包括以下步骤:
- 从对象的 ListA 创建一个 Observable。
- 使用flatMapSingle() 将Observable 发出的每个项目映射到SingleSource。在 flatMapSingle() 内部,对 Observable 发出的每个项目执行异步操作。
- 收集了 ListB 中的所有项目,Observable.toList()
结果:由于异步操作,ListB 的项目顺序与 ListA 不同。
因此,flatMapSingle() 的工作方式似乎与flatMap() 类似,因为它使用了合并运算符并且不保证元素的顺序会被保留。
我的结论正确吗?文档没有涵盖我,并且不存在有关此行为的讨论。
【问题讨论】:
-
按照惯例,
flatMap不保证输出事件相对于映射到源中的输入值的顺序。 -
感谢您的即时回复。文档对
flatMap非常清楚,正如您所说。我只是想确认这同样适用于flatMapSingle(是的,名称中包含 flatMap,但比抱歉更安全......)