RxJS 系列 – Mathematical and Aggregate Operators
前言
前几篇介绍过了
Conditional and Boolean Operators
这篇继续介绍 Mathematical and Aggregate Operators
参考
Docs – Mathematical and Aggregate Operators

count
complete 以后, 统计之前总共发布了几次
const subject = new Subject<number>();
subject.pipe(count()).subscribe({
next: v => console.log('next', v),
complete: () => console.log('complete'),
});
subject.complete();
效果

如果一次都没有, 也会 next value 0 哦
max & min
complete 后, 找出之前发布过最大/最小的值
const subject = new Subject<{ age: number }>();
subject.pipe(max(person => person.age)).subscribe({
next: v => console.log('next', v),
complete: () => console.log('complete'),
});
subject.next({ age: 50 });
subject.next({ age: 72 });
subject.next({ age: 40 });
subject.complete();
效果

这里我只给 max 的例子, min 就是找最小.
reduce
在 complete 之后, 它才去跑 JS 的 Array.reduce
const subject = new Subject<number>();
subject.pipe(reduce((acc, value) => acc + value, 0)).subscribe(v => console.log('next', v));
subject.next(1);
subject.next(2);
subject.next(3);
subject.complete();
效果

用 scan + last 来实现
.pipe(
scan((acc, value) => acc + value, 0),
last()
)
一句话总结
count : complete 后统计之前总共发布几次
max & min : complete 后, 找出之前发布过最大/最小值
reduce : 等价于 scan + last. scan 每一次都会发布, reduce 只在 complete 后才发布.
RxJS 系列 – Mathematical and Aggregate Operators的更多相关文章
- RxSwift 系列(六) -- Mathematical and Aggregate Operators
前言 本篇文章将要学习RxSwift中数学和集合操作符,在RxSwift中包括了: toArray reduce concat toArray 将一个Observable序列转化为一个数组,并转换为一 ...
- RxSwift 系列(八) -- Error Handing Operators
前言 本篇文章我们将学习RxSwift中的错误处理,包括: catchErrorJustReturn catchError retry retry(_:) catchErrorJustReturn 遇 ...
- rxjs笔记(未完成)
首先是 Observable 和promise的区别, 1返回值个数,Observable 可以返回0到无数个值. 2.Promise主动推送,控制着"值"何时被 "推送 ...
- ReactiveX Operators
This documentation groups information about the various operators and examples of their usage into t ...
- Rxjava, RxAndroid, Retrofit 等库的使用
RxJava的基本用法: 关于 unSubscribe() 的调用问题: There is no need to unsubscribe in onCompleted. Take a look at ...
- RxSwift 之官方文档
RxSwift 官方文档结构 Introduction: Subjects Transforming Observables Filtering Observables Combining Obser ...
- ReactiveX 学习笔记(7)聚合操作符
Mathematical and Aggregate Operators 本文的主题为处理 Observable 的聚合操作符. 这里的 Observable 实质上是可观察的数据流. RxJava操 ...
- Rx = Observables(响应) + LINQ(声明式语言) + Schedulers(异步)
Reactive = Observables(响应)+ Schedulers(异步). Extensions = LINQ(语言集成查询) LINQ: The Operators of Reactiv ...
- RxJava中的doOnSubscribe默认运行线程分析
假设你对RxJava1.x还不是了解,能够參考以下文章. 1. RxJava使用介绍 [视频教程] 2. RxJava操作符 • Creating Observables(Observable的创 ...
- RxJava 2.x 理解-2
操作符总结: http://reactivex.io/documentation/operators.html https://github.com/ReactiveX/RxJava/wiki Ope ...
随机推荐
- 拥抱未来:GPT-4将如何改变我们的世界
随着人工智能技术的迅猛发展,我们正迎来一个全新的智能时代.在这个时代的前沿,GPT-4作为开拓者和领航者,正在重新定义人机交互.创意创新和个性化服务的标准.无论是在商业领域.教育场景还是科研领域,GP ...
- Apache Kyuubi 在小米大数据平台的应用实践
导读:今天分享的主题是<Kyuubi 在小米大数据平台的应用实践>,主要分为四部分内容: Kyuubi 在小米的落地过程 打造易用和高可用的 Kyuubi 服务 基于 kyuubi 的改进 ...
- DataGridView1列宽根据内容自适应
DataGridView1列宽根据内容自适应 在使用DataGridView控件时,要使列宽根据内容自适应,你可以使用DataGridView的AutoResizeColumns方法.这个方法允许你根 ...
- [rCore学习笔记 015]特权级机制
写在前面 本随笔是非常菜的菜鸡写的.如有问题请及时提出. 可以联系:1160712160@qq.com GitHhub:https://github.com/WindDevil (目前啥也没有 官方文 ...
- SUM-ACM,3月24-3-31周报
两场天梯赛和一场atcoder. 主要错误知识点在于字符串的处理和并查集的掌握不够,不懂灵活运用. 第一场pta天梯赛 7-5 6翻了 一道字符串的题,我只拿了14分.我不熟悉一个点,f(i,0,s. ...
- OpenGL之ShadowMap
流程:先创建一个RenderTexture,然后用灯光的视口渲染. 然后切换到正常相机,进行渲染,使用RenderTexture中的深度或者颜色纹理,然后还原当前顶点在灯光中的深度,两者对比,比缓存中 ...
- VScode配置PHP开发环境
vscode配置php开发环境 使用vscode配置PHP开发环境,首先要下载vscode, vscode下载 下载完vscode之后,可以在扩展里面下载中文版本 将vscode下载完之后,需要下载x ...
- awk替换指定行指定列内容
例如表格中数值如下1,2,3,41,2,1,22,3,2,3怎么样在原表中,把第二行第三个1替换为5. awk -F"," 'NR==2{$3=5} 1' file.txt -F ...
- 【MySQL】 批量更改库,表,字段的字符集
库一级的更改: -- 单个库字符集更改 ALTER DATABASE `ymcd_aisw` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; ALTER ...
- 【Uni-App】其他配置笔记
manifest.json manifest.json 文件是应用的配置文件,用于指定应用的名称.图标.权限等.HBuilderX 创建的工程此文件在根目录,CLI 创建的工程此文件在 src 目录. ...