写一段简单的代码来测试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的实现原理示意图及分析相关推荐

  1. rxjs of操作符生成的Observable对象的执行详细分析

    代码: const a = of([1, 2, 3]); a.subscribe((data) => console.log('Fairy:' + data)); 单步调试,首先执行of所在的i ...

  2. 飞机里黑匣子的定位原理

    飞机里黑匣子的定位原理 2022年3月21日,东航一架由昆明飞往广州的波音737-800飞机在广西梧州坠落.事情已经过去一天,首先我们要为全体乘客和机组人员祈福,今天这篇文章我们就来深入讲解一下飞机里 ...

  3. php函数的实现原理及性能分析

    2019独角兽企业重金招聘Python工程师标准>>> 前言 在任何语言中,函数都是最基本的技术单元之一.对于php的函数,它具有哪些特点?函数调用是怎么实现?php函数的性能如何, ...

  4. Android OTA升级原理和流程分析(五)---update.zip包从上层进入Recovery服务

    转载自:http://blog.chinaunix.net/uid-22028566-id-3533854.html 文章开头我们就提到update.zip包来源有两种: 一个是OTA在线下载(一般下 ...

  5. 对dpdk的rte_ring实现原理和代码分析

    对dpdk的rte_ring实现原理和代码分析 前言 dpdk的rte_ring是借鉴了linux内核的kfifo实现原理,这里统称为无锁环形缓冲队列. 环形缓冲区通常有一个读指针和一个写指针.读指针 ...

  6. 图解通信原理与案例分析-26: 5G NR是如何支持海量机器类通信mMTC的?移动通信对物联网的支持

    前言: 移动通信最初是解决人与人之间的语音通信,后来发展成了人与人之间的文本通信, 到了4G LTE,已经很好的解决了人与人之间的视频通信. 到了5G,人与人之间的高速率的数据通信在LTE的基础之上得 ...

  7. 图解通信原理与案例分析-35:以太网MAC层的通信原理--MAC帧格式与调度策略:载波侦听与冲突检测CSMA/CD、载波侦听与冲突避免(信道空闲保证)CSMA/CA、流控

    以太网协议已经是非常成熟的通信技术,本文旨在在汇总以太网MAC层的协议,以便于与其他通信技术的MAC层作为比较,如4G LTE, 5G NR,特别是LTE在非授权频谱上的通信LAA LBT, 就是借鉴 ...

  8. Android-FrameWork原理与架构分析

    Android-FrameWork原理与架构分析 Android架构主要分为分为四部分,从上往下依次为 APPLICATION(应用程序), APPLICATION FRAMEWORK(应用框架层), ...

  9. 硬盘FAT文件系统原理的详细分析——转载

    首先给大家分享一个巨牛巨牛的人工智能教程,是我无意中发现的.教程不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵段子,像看小说一样,哈哈-我正在学习中,觉得太牛了,所以分享给大家!点这里可以跳转 ...

最新文章

  1. Water Research:南土所褚海燕组揭示冰川源水体和沉积物细菌群落显著分异
  2. 【Java】eclipse如何设置成保护眼的背景色
  3. 有没有哪种贷款不用利息,而且门槛又低?
  4. IE 弹出框处理经验
  5. matlab dynprog,动态规划算法
  6. Kubernetes之持久化存储
  7. [译]如何成为一个优秀的前端工程师
  8. LeetCode() Search in Rotated Sorted Array
  9. 万特电能表接线仿真系统 软件_电工学习PLC和接线入门 之 无中生有(软件仿真)...
  10. idea 2017 破解方法
  11. 计算机开机两个系统消失,电脑win7系统开机有2个或多个系统选项 删除多余系统引导选项方法...
  12. pdf文件如何在线转换为jpg图片 1
  13. 频繁默认网关不可用_图文修复win7系统默认网关不可用频繁掉线的办法
  14. acm-基础数论学习笔记(下)
  15. 上传本地图片到数据库
  16. 【财务分析】ERP软件的财务管理系统具有哪些功能?
  17. h5使用js的点击复制功能,兼容安卓和ios,亲测有效
  18. 译文Deep Learning in Bioinformatics --深度学习在生物信息学领域的应用(1)
  19. LiteOS学习(一)任务
  20. フェーン現象 (Foehn Phenomena)

热门文章

  1. 04 canvas——位移画布和旋转缩放
  2. openstack安装rabbitmq-server消息队列时出现错误
  3. c#中contextMenuStrip与datagridview使用CellMouseDown事件及treeview使用mousedown事件
  4. sql语句查询Oracle|sql server|access 数据库里的所有表名,字段名
  5. MVC Controllers和Forms验证
  6. Scott Mitchell 的ASP.NET 2.0数据教程之三十八:: 处理BLL和DAL的异常
  7. InterlliJ Debug启动:method breakpoints may dramatically show down debugging
  8. 整理 | 软件与工具的收集汇总及推荐
  9. 吐槽net下没有靠谱的FastDFS的sdk之使用thrift实现JAVA和C#互通
  10. 规定自己的Java编码规范