几个月前,我们覆盖了switchMap
操作符从RxJs。今天,让我们来看看一个类似的操作符mergeMap
:

大理石图不是显而易见的,因为它是为其他运营商,让我们澄清什么mergeMap
:
- 需要从一个观察值和将它们映射到另一个可观测的
- 然后它允许我们将从可见到一个新的观察值
什么是真实的使用情况mergeMap
吗?
假设你想要显示产品相关类别的列表。产品信息都存储在一个API端点和类别信息存储在另一个API端点。显示列表的产品类别,你需要一个单独的API调用每个产品检索它的类别信息。
您可以使用mergeMap
结合这两个API调用并将结果合并为单个流的数据(产品+类别)。
它是如何不同switchMap
吗?
mergeMap
不同于switchMap
在两个重要方面:
switchMap
从可观察的# 2 -只返回数据mergeMap
返回数据可见# 1和# 2,让我们把这些数据我们想要的任何方式switchMap
取消可见# 2每当可见# 1发出一个新值,然后重新创建另外一个可观测的# 2。mergeMap
不这样做。
换句话说,switchMap
是完美的,当我们想要链异步行为如“用户选择一个新的过滤器,然后我们请求新数据根据过滤器”,因为如果用户更改,再次过滤,我们想取消之前的请求,并开始一个新的。