mergeMap 和 mergeMapTo 有什么区别?

2024-03-12

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


来自docs http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-mergeMapTo,合并MapTo:

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

I see mergeMapTo作为始终输出相同值的快捷方式。mergeMapTo不关心源值。

也来自docs http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-mergeMapTo:

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

你会看到mergeMap需要一个function while mergeMapTo需要一个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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mergeMap 和 mergeMapTo 有什么区别? 的相关文章

  • 使用 TypeScript 将 RxJS 运算符合并为新运算符

    我经常发现自己向可观察量添加相同的运算符序列 例如 observable do x gt console log some text x publishReplay refCount 我正在寻找一种方法将这 3 个运算符组合成一个小型可重用
  • RxJS - 如何在不使用间隔的情况下增量增加延迟时间?

    我想逐步增加延迟 const source from 839283 1123123 63527 4412454 note this is random const spread source pipe concatMap value gt
  • 对 rxjs 订阅进行反跳和缓冲

    我有一个消息队列处理器 可以将消息提供给服务 q on message m gt service create m then gt m ack catch gt n nack 该服务使用 RxJS Observable 并订阅debounc
  • 如何确保 Angular 服务构造函数中的异步初始化完成?

    请专家告诉我 在调用类中的其他函数时 如何确保服务构造函数中的异步初始化完成 constructor var sock new SockJS this chatUrl this stompClient Stomp over sock thi
  • 如何使用 RxJS 显示“用户正在输入”指示器?

    我了解一点 BaconJS 但现在我尝试通过创建 用户正在输入 指示器来学习 RxJS 这很简单 可以用两个简单的规则来解释 当用户打字时 指示器应该立即可见 当用户停止键入时 指示器应该仍然可见 直到用户最后一次键入操作后 1 秒 我不确
  • 如何在 RxJs 5 中将主题转换为可观察对象

    我们如何在 RxJs 5 中将主题转换为可观察对象 例如 当我们想要公开主题进行订阅但又不想放弃对调用的控制时 此功能非常有用next 并倾向于将新值的发布保密 文档 参见here https github com Reactive Ext
  • 使用 RxJS 进行批处理?

    我猜想这应该很容易实现 但我在解决它时遇到了困难 我猜是概念上 我拥有的是一个返回 JSON 对象数组的 API 我需要单步执行这些对象 并对每个对象进行另一个 AJAX 调用 问题是处理每个 AJAX 调用的系统一次只能处理两个活动调用
  • 我如何 - 长轮询和调度程序?

    我正在尝试安排一个长轮询机制 我想知道是否可以利用调度程序来实现这一点 到目前为止 这就是我一直在想的 通过计时器进行调度 但仅在上一次迭代已经完成的情况下才将下一次迭代排入队列 当上一次迭代完成时 将下一次迭代排入队列 我一直在查看现有的
  • 保留 Rxjs 生成的复选框的状态

    基于在下拉列表中选择不同的项目 我生成带有复选框的项目的 html 如何保留复选框的状态 即每当下拉列表中的值发生变化时选中 取消选中 请参阅此处的 plunkrhttps plnkr co edit PUG3g7dfTbQjPyIgGLz
  • 为什么按钮点击触发与setTimeout()触发不同?

    考虑以下几乎相同的两个片段 区别在于 第一个使用setTimeout 触发事件 第二个在单击按钮时触发事件 如果您检查控制台 您将看到代码段 1 中的最后两行是 App rendering 1 folder s Observed js 片段
  • RxJS5 最终确定运算符未调用

    当我的所有可观察量都被执行时 我试图触发回调 在我的另一个较旧的项目中 我使用了finally就像这样 这就像一个魅力 this myService callDummy finally gt console log Works subscr
  • 如何使用 rxjs 定期检查实时连接?

    我使用 rxjs 来处理 websocket 连接 var socket Rx Observable webSocket wss echo websocket org socket resultSelector e gt e data 我想
  • Angular 5 RxJs concatMap、switchMap、mergeMap 哪个?

    我有这个方法通过本地存储获取令牌 如果令牌不存在或过期 我将调用API来获取另一个令牌并存储到本地存储 在这种情况下 我应该使用哪个地图 当前使用 mergeMap 还是其他方式来执行此操作 public doGetToken Observ
  • 如何将 retryWhen 与返回布尔值的函数一起使用?

    这是我的代码 this http post this url get extension headers headers map res gt res body retryWhen errors gt return responseErro
  • 动态过滤rxjs流

    我正在使用 RXJS 并且希望动态过滤数据 但遇到问题 let numberSource ReplaySubject
  • 组合最新第一个事件未触发

    我想知道我的应用程序何时离线并重新上线 我在以下位置注册了以下事件rxjs const online Rx Observable fromEvent window online const offline Rx Observable fro
  • RxJS v5 中的速率限制和计数限制事件,但也允许传递

    我有很多事件要发送到服务 但请求有速率限制 每个请求都有计数限制 每秒 1 个请求 bufferTime 1000 每个请求 100 个活动项目 bufferCount 100 问题是 我不确定如何以有意义的方式将它们组合起来 允许通过 让
  • RxJS 将数组映射到可观察对象并返回到数组中的普通对象

    我有一个对象数组 我需要将每个对象分别传递到异步方法中 后面的过程是用 Promise 处理的 然后通过转换回 ObservableObservable fromPromise 需要这种方式 因为在任何时候只传递单个对象的情况下都会使用相同
  • Rxjs、fromEvent处理多个事件

    在 rxjs 5 1 中处理同一 DOM 节点上的多个事件的最佳方法是什么 fromEvent element event name 但我一次只能指定一个事件 我要手柄scroll wheel touchmove touchend even
  • 使用 typescript、karma 和 jasmine 进行 RxJS Observable.timer 单元测试

    大家好 我对 Angular2 Karma 和 Jasmine 还比较陌生 目前我正在使用 Angular 2 RC4 Jasmine 2 4 x 我有一个 Angular 2 服务 它定期调用 http 服务 如下所示 getDataFr

随机推荐