rxjs里scan operator的执行研究
时间:2022-07-25
本文章向大家介绍rxjs里scan operator的执行研究,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
源代码:
ngOnInit(): void {
console.log('before ngOnInit');
const source$ = range(0, 10);
source$.pipe(
/*filter(
(x, index) => {
console.log('inside filter!: ' + x + ' index: ' + index);
return x % 2 === 0 })
*/
/*map( x => {
console.log('inside map: ' + x);
return (x + x); }
),*/
// scan((acc, x) => acc + x, 0)
scan(this.accumulator)
)
.subscribe(x => console.log('result: ' + x));
}
入口:
由此可见,scan的第二个参数可以用来传入seed:
scan执行完之后,返回到pipe函数执行中,pipeFromArray(operations)(this)会执行scan函数返回的新函数,
即:scanOperatorFunction
创建新的scanOperator:
scan.js内部会创建一个新的Observable,将原始的Observable维护在source字段里:
然后执行应用代码中的subscribe:
此处执行operator,即scan操作:
首先调用range.js里的next方法,逐一生成间隔:
这里再次看到了const source$ = range(0, 10)语句的惰性生成值效果:在range方法返回的Observable对象没有调用subscribe方法之前,根本不会有任何整型值生成的行为发生。
从range.next调用执行到scan的accumulator方法体内:
此处进入了我们应用程序实现的accumulator方法:
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 架构师写的BUG,非比寻常
- Nginx平滑升级
- 聊聊dubbo-go的HystrixFilter
- c/c++补完计划(二): c字符串复制
- vue 随记(3):“新时代”的姿势
- 归并排序 O(nLogn)
- 读书笔记--Android系统启动
- Swift 数组(Arrays)
- Swift 多行字符串字面量
- 服务器配置ssh密钥登陆
- Swift 区间运算符
- Spring Security 实战干货:理解AuthenticationManager
- 深度学习|Tensorflow2.0基础
- 【Rust日报】2020-07-20 boids算法, tide, popol, Calcite
- Cell Ontology:解析细胞类型新维度