mergeMap和mergeMapTo有什么区别?

时间:2016-09-02 10:34:53

标签: rxjs5

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

1 个答案:

答案 0 :(得分:3)

来自docs,mergeMapTo:

  

它与mergeMap类似,但将每个值始终映射到相同的内部Observable。

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

同样来自docs

  

将每个源值映射到给定的Observable innerObservable   无论源值如何,然后合并那些结果   可观察到一个单一的Observable,即输出   观察到。

您会看到mergeMap需要functionmergeMapTo需要value

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

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

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

Rx.Observable.of(1, 2, 3).mergeMapTo(10);