RXJS 实例操作符
先来了解几个新名词:
- Observable : 可观察对象,是一组值或事件的集合
- Observer : 观察者,回调函数集合
- Subscription :Observable动作执行者
- Operators : 操作符(纯函数)
- Subject :相当于EventEmitter
- Scheduers :调度器, 控制并发行为
这里解释一下什么叫作实例方式和类方法。首先,如果是通过new 操作符号产生的对象去调用的方法就是实例方法,如果是直接使用类名调用的方法就是类方法(如:Observable.create...)。
常用的实例方法
pip :功能类似于 let 操作符
map :转换输出的数据
pluck :提取属性值并输出
do :不做数据格式化,可用于调试
filter :用于过滤一些Observable
take :表示取几条数据
takeWhile :满足什么条件时开始取数据
skip :表示跳过多少条数据后开始取
distinctUntilChanged :比较输入的Observable计算得出的值当前与后最后的值是否相等使用,===,判断
scan :功能有点类似于Array#reduce这个方法,可用于累加数据同时可以使用startWith的数据用途scan的初始值,最后返回累加的数据
delay :表示Observable延时多久开始处理订阅数据
toArray :把输出值格式化成数据形式
toMap :给当前的输出取个名字或标签
expand :实现递归
forkJoin :类似于Promise.all,只有数据全部返回且状态为complete时,表示成功处理了请求,否则失败
let :这个操作符可以获取完整的输入Observable对象,做相应的处理后返回新的Observable对象
catch :用于Observable处理数据异常的处理
combineLatest :用于组且各个输入的Observable,并获取和返回各个Observable最新的数据
merge :用于把两个Observable合成一个处理
RXJS 实例操作符的更多相关文章
- Angular使用总结 --- 搜索场景中使用rxjs的操作符
在有input输入框的搜索/过滤业务中,总会考虑如何减少发起请求频率,尽量使每次的请求都是有效的.节流和防抖是比较常见的做法,这类函数的实现方式也不难,不过终归还是需要自己封装.rxjs提供了各种操作 ...
- RxJS 中的创建操作符
RxJs 中创建操作符是创建数据流的起点,这些操作符可以凭空创建一个流或者是根据其它数据形式创建一个流. Observable的构造函数可以直接创建一个数据流,比如: const $source=ne ...
- RxJS中高阶操作符的全面讲解:switchMap,mergeMap,concatMap,exhaustMap
RxJS中高阶映射操作符的全面讲解:switchMap, mergeMap, concatMap (and exhaustMap) 原文链接:https://blog.angular-universi ...
- Rxjs 操作符
1. javascript解决异步编程方案 解决javascript异步编程方案有两种,一种是promise对象形式,还有一种是是Rxjs库形式,Rxjs相对于Promise来说,有好多Promise ...
- RxJS v6 学习指南
为什么要使用 RxJS RxJS 是一套处理异步编程的 API,那么我将从异步讲起. 前端编程中的异步有:事件(event).AJAX.动画(animation).定时器(timer). 异步常见的问 ...
- rxjs的世界
rxjs学习了几个月了,看了大量的东西,在理解Observable的本文借鉴的是渔夫的故事,原文,知识的主线以<深入浅出rxjs>为主,动图借鉴了rxjs中文社区翻译的文章和国外的一个动图 ...
- rxjs入门6之合并数据流
一 concat,merge,zip,combineLatest等合并类操作符 以上操作符在版本6中已经只存在静态方法,不能在pipe中使用. import {concat,merge,zip,com ...
- 《深入浅出RxJS》读书笔记
rxjs的引入 // 如果以这种方式导入rxjs,那么整个库都会导入,我们一般不可能在项目中运用到rxjs的所有功能 const Rx = require('rxjs'); 解决这个问题,可以使用深链 ...
- RxJS——调度器(Scheduler)
调度器 什么是调度器?调度器是当开始订阅时,控制通知推送的.它由三个部分组成. 调度是数据结构.它知道怎样在优先级或其他标准去存储和排队运行的任务 调度器是一个执行上下文.它表示任务在何时何地执行(例 ...
随机推荐
- 简单hibernate框架测试
-jar包 -日志配置文件: -实体类: package cn.itcast.domain; public class Customer { private Long cust_id; //客户编号 ...
- 关于angular实现表单的一些问题
如何用angular实现表单的一些问题?核心步骤大概如下: 创建模型类 创建控制此表单的组件. 创建具有初始表单布局的模板. 使用ngModel双向数据绑定语法把数据属性绑定到每个表单输入控件. 往每 ...
- python笔记18-高阶函数
高阶函数: 如果一个函数的入参是一个函数名的话,那这个函数就是一个高阶函数 函数即变量 # def hello(name):# print(name)# new_hello = hello#hello ...
- Ubuntu下安装git
1 安装 官网上提供的命令是: $ sudo add-apt-repository ppa:git-core/ppa 中间暂停时,按回车键Enter继续安装. $ sudo apt-get updat ...
- numpy 库使用
numpy 库简单使用 一.numpy库简介 Python标准库中提供了一个array类型,用于保存数组类型的数据,然而这个类型不支持多维数据,不适合数值运算.作为Python的第三方库numpy便有 ...
- vue axios上传文件实例
<head> <title></title> <meta charset="UTF-8"> <meta name=" ...
- 1011. World Cup Betting (20)
生词(在文中的意思) tie 平局 lay a bet 打赌 putting their money where their mouths were 把他们的钱用在刀刃上 manner of 的方式 ...
- 刚下了VS2010不会用,求大神指点迷津
刚下了VS2010不会用,求大神指点迷津 [菌菌][C语言MOOC]第七周计算分数精确值(10分) thinkphp3.1Calltoamemberfunctionget()onnull java提示 ...
- 2017-9-24模拟赛T1 个人卫生综合征(school.*)
题目 每天 BBS 都要从家里经过城市中的一段路到学校刷五三.城市中一共有 n 个路口和 m 条双向道路,每条双向道路都连接着两个路口 a i .b i 且有一定的时间花费 v i .BBS家编号为 ...
- myls
#include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <unist ...