博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
merge和concat区别
阅读量:4966 次
发布时间:2019-06-12

本文共 1399 字,大约阅读时间需要 4 分钟。

Rxjs中merge和concat区别:

1、相同点:

都是将多个可观察输入对象合并为一个可观测输出对象,通过订阅获取输入客观擦对象的弹出的值;

 concat中只要有一个输入可观察对象发生错误,其后面的输入可观察对象无法弹出其值,即订阅终止;merge存在竞争关系,有一个输入可观察对象发生错误,也会 终止订阅。

2、不同点:

merge是并联,同步发生,存在竞争关系;concat是串联,按照输入顺序,第一个可观测对象的值弹出完全后,接着开始弹出第二个可观察对象,依次输出。

3、事实上,concat相当于将并发参数设置为1的merge操作符,即 concat(inputObv1,inputObv2, inputObv3, ....) === merge(inputObv1,inputObv2, inputObv3, ...., 1)

  

1 const o1 = new Observable
(observer => { 2 timer(200).subscribe(() => { 3 observer.next('2s'); 4 observer.error('error 第一个输入可观擦对象报错,后续可观擦对象终止订阅'); 5 observer.complete(); 6 }); 7 }); 8 9 const o2 = new Observable
(observer => {10 timer(1000).subscribe(() => {11 observer.next('1s');12 observer.complete();13 });14 });15 16 concat(o1, o2).subscribe({17 next(value) {18 console.log('value: ', value);19 },20 error(reason) {21 console.log('reason:', reason);22 },23 complete() {24 console.log('complete');25 }26 });27 28 merge(o1, o2, 1).subscribe({29 next(value) {30 console.log('value: ', value);31 },32 error(reason) {33 console.log('reason:', reason);34 },35 complete() {36 console.log('complete');37 }38 });39 }

 

转载于:https://www.cnblogs.com/szy-du/p/11204274.html

你可能感兴趣的文章
hdu2054 不要想太多,这就一水题
查看>>
CHtmlCtrl的实现
查看>>
洛谷 P1546 最短网络 Agri-Net
查看>>
Spring-cloud & Netflix 源码解析:Eureka 服务注册发现接口 ****
查看>>
技术blog链接
查看>>
web前端实战系列[3]——下拉菜单
查看>>
111 Minimum Depth of Binary Tree 二叉树的最小深度
查看>>
Hadoop使用常见问题以及解决方法1
查看>>
重载与覆盖的差别
查看>>
NLP系列(2)_用朴素贝叶斯进行文本分类(上)
查看>>
<LeetCode OJ> 121. /122. Best Time to Buy and Sell Stock(I / II)
查看>>
HTTP Status 415 – Unsupported Media Type(使用@RequestBody后postman调接口报错)
查看>>
JIRA 敏捷开发平台部署记录
查看>>
react里面引入图片
查看>>
问题分析
查看>>
P4安装
查看>>
HDU 3664 (水地推)
查看>>
AndroidPullToRefresh拉动效果配置
查看>>
C#程序员经常用到的10个实用代码片段
查看>>
cmd下 mysql操作命令大全详解
查看>>