rxjs of操作符里subscribeToArray的实现原理示意图及分析
写一段简单的代码来测试subscribeToArray:
test1(){const subscribeToArray = (array) => (subscriber) => {for (let i = 0, len = array.length; i < len; i++) {subscriber.next(array[i]);}subscriber.complete();} ;console.log(subscribeToArray);const input = [1, 2, 3];const result = subscribeToArray(input);const print = (a) => {if(!!a){console.log('next: ' + a);}else{console.log('completed!');}}const mySubscribe = {next: print,complete: print};result(mySubscribe);
执行结果:
逐一分析:
subscribeToArray是一个函数,它接收一个array,生成另一个函数。第二个函数接收一个输入参数subscriber,函数体内依次调用next和complete方法处理array的内容。
如下图所示,观察第二个函数是如何接受subscriber对象并产生输出的:
当然支持输入为多重数组:
输出:
更多Jerry的原创文章,尽在:“汪子熙”:
rxjs of操作符里subscribeToArray的实现原理示意图及分析相关推荐
- rxjs of操作符生成的Observable对象的执行详细分析
代码: const a = of([1, 2, 3]); a.subscribe((data) => console.log('Fairy:' + data)); 单步调试,首先执行of所在的i ...
- 飞机里黑匣子的定位原理
飞机里黑匣子的定位原理 2022年3月21日,东航一架由昆明飞往广州的波音737-800飞机在广西梧州坠落.事情已经过去一天,首先我们要为全体乘客和机组人员祈福,今天这篇文章我们就来深入讲解一下飞机里 ...
- php函数的实现原理及性能分析
2019独角兽企业重金招聘Python工程师标准>>> 前言 在任何语言中,函数都是最基本的技术单元之一.对于php的函数,它具有哪些特点?函数调用是怎么实现?php函数的性能如何, ...
- Android OTA升级原理和流程分析(五)---update.zip包从上层进入Recovery服务
转载自:http://blog.chinaunix.net/uid-22028566-id-3533854.html 文章开头我们就提到update.zip包来源有两种: 一个是OTA在线下载(一般下 ...
- 对dpdk的rte_ring实现原理和代码分析
对dpdk的rte_ring实现原理和代码分析 前言 dpdk的rte_ring是借鉴了linux内核的kfifo实现原理,这里统称为无锁环形缓冲队列. 环形缓冲区通常有一个读指针和一个写指针.读指针 ...
- 图解通信原理与案例分析-26: 5G NR是如何支持海量机器类通信mMTC的?移动通信对物联网的支持
前言: 移动通信最初是解决人与人之间的语音通信,后来发展成了人与人之间的文本通信, 到了4G LTE,已经很好的解决了人与人之间的视频通信. 到了5G,人与人之间的高速率的数据通信在LTE的基础之上得 ...
- 图解通信原理与案例分析-35:以太网MAC层的通信原理--MAC帧格式与调度策略:载波侦听与冲突检测CSMA/CD、载波侦听与冲突避免(信道空闲保证)CSMA/CA、流控
以太网协议已经是非常成熟的通信技术,本文旨在在汇总以太网MAC层的协议,以便于与其他通信技术的MAC层作为比较,如4G LTE, 5G NR,特别是LTE在非授权频谱上的通信LAA LBT, 就是借鉴 ...
- Android-FrameWork原理与架构分析
Android-FrameWork原理与架构分析 Android架构主要分为分为四部分,从上往下依次为 APPLICATION(应用程序), APPLICATION FRAMEWORK(应用框架层), ...
- 硬盘FAT文件系统原理的详细分析——转载
首先给大家分享一个巨牛巨牛的人工智能教程,是我无意中发现的.教程不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵段子,像看小说一样,哈哈-我正在学习中,觉得太牛了,所以分享给大家!点这里可以跳转 ...
最新文章
- Water Research:南土所褚海燕组揭示冰川源水体和沉积物细菌群落显著分异
- 【Java】eclipse如何设置成保护眼的背景色
- 有没有哪种贷款不用利息,而且门槛又低?
- IE 弹出框处理经验
- matlab dynprog,动态规划算法
- Kubernetes之持久化存储
- [译]如何成为一个优秀的前端工程师
- LeetCode() Search in Rotated Sorted Array
- 万特电能表接线仿真系统 软件_电工学习PLC和接线入门 之 无中生有(软件仿真)...
- idea 2017 破解方法
- 计算机开机两个系统消失,电脑win7系统开机有2个或多个系统选项 删除多余系统引导选项方法...
- pdf文件如何在线转换为jpg图片 1
- 频繁默认网关不可用_图文修复win7系统默认网关不可用频繁掉线的办法
- acm-基础数论学习笔记(下)
- 上传本地图片到数据库
- 【财务分析】ERP软件的财务管理系统具有哪些功能?
- h5使用js的点击复制功能,兼容安卓和ios,亲测有效
- 译文Deep Learning in Bioinformatics --深度学习在生物信息学领域的应用(1)
- LiteOS学习(一)任务
- フェーン現象 (Foehn Phenomena)
热门文章
- 04 canvas——位移画布和旋转缩放
- openstack安装rabbitmq-server消息队列时出现错误
- c#中contextMenuStrip与datagridview使用CellMouseDown事件及treeview使用mousedown事件
- sql语句查询Oracle|sql server|access 数据库里的所有表名,字段名
- MVC Controllers和Forms验证
- Scott Mitchell 的ASP.NET 2.0数据教程之三十八:: 处理BLL和DAL的异常
- InterlliJ Debug启动:method breakpoints may dramatically show down debugging
- 整理 | 软件与工具的收集汇总及推荐
- 吐槽net下没有靠谱的FastDFS的sdk之使用thrift实现JAVA和C#互通
- 规定自己的Java编码规范