mergeMap 和 mergeMapTo 有什么区别? [英] What is the difference between mergeMap and mergeMapTo?

查看:55
本文介绍了mergeMap 和 mergeMapTo 有什么区别?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

In rxjs5 doc, it mentions 'To reduce polymorphism and get better performance out of operators, some operators have been split into more than one operator'. What does it actually mean and how to use the mergeMapTo operator?

推荐答案

来自 文档,mergeMapTo:

From the docs, mergeMapTo:

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

It's like mergeMap, but maps each value always to the same inner Observable.

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

I see mergeMapTo as a shortcut to always output the same value. mergeMapTo doesn't care about the source value.

同样来自 文档:

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

Maps each source value to the given Observable innerObservable regardless of the source value, and then merges those resulting Observables into one single Observable, which is the output Observable.

你会看到 mergeMap 接受一个 functionmergeMapTo 接受一个 value:

You'll see that mergeMap takes a function while mergeMapTo takes a value:

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

An example with mergeMap (we're transforming values):

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

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

While using mergeMapTo we can take values from a stream and always output the same value (also transforming, but always to the same value):

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

这篇关于mergeMap 和 mergeMapTo 有什么区别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆