在RxJava2中,flatMap()
和flatMapIterable()
有什么区别?flatMapIterable()
背后的逻辑是什么?
最佳答案
flatMap
:
将上游源的值映射到Observable
,对其进行订阅并以潜在的交错方式合并其结果。换句话说,它合并了动态生成的推送源。flatMapIterable
:
将上游源的值映射到Iterable
,并一个接一个地迭代。换句话说,它合并了动态生成的拉动源。
您可以将flatMapIterable
表示为flatMap(Observable::fromIterable)
或concatMap(Observable::fromIterable)
。
除了作为类型之间的捷径外,它还可以直接实现并提供considerably lower overhead。