mergeMap 和 mergeMapTo 有什么区别?

gol*_*kin 4 rxjs5

在 rxjs5 文档中,它提到“为了减少多态性并从运算符中获得更好的性能,一些运算符已被拆分为多个运算符”。它实际上是什么意思以及如何使用 mergeMapTo 运算符?

raf*_*ten 6

文档中,mergeMapTo:

就像mergeMap,但总是将每个值映射到同一个内部 Observable。

我认为mergeMapTo是始终输出相同值的快捷方式。mergeMapTo不关心源值。

也来自文档

将每个源值映射到给定的 ObservableinnerObservable,而不考虑源值,然后将这些结果 Observable 合并为一个 Observable,即输出 Observable。

你会看到,mergeMap需要function同时mergeMapTo采取value

一个示例mergeMap(我们正在转换值):

Rx.Observable.of(1, 2, 3).mergeMap(x =>
  Rx.Observable.interval(1000).map(i => x+i)
);
Run Code Online (Sandbox Code Playgroud)

在使用 mergeMapTo 时,我们可以从流中获取值并始终输出相同的值(也进行转换,但始终为相同的值):

Rx.Observable.of(1, 2, 3).mergeMapTo(10);
Run Code Online (Sandbox Code Playgroud)