RXJS
这篇文章 主要针对看完rxjs文档,想对其做一个整体理解。文档地址rxjs
做了几个部分帮助大家理解记忆和运用
- 概念总览
- 关键点理解
概念总览图

关键理解点
什么是observable?
简单讲就是多个值的生产者
observable的生命周期?
四个过程,如上图中所示:创建、订阅、执行、清理
什么是observable订阅?
是创建的observable的的subscribe方法的执行,他返回一个subscription的对象
什么是执行?
执行的动作是subscribe发起的。observable.subscribe(observer){…}.其中…叫做执行;
什么是观察者?
数据的消费者,observable.subscribe(observer){…},其中observer即为观察者
观察者常见的方法?
next() 数据流执行;error()和complete()只有一次.
如何订阅清理?
调用subscription的方法unsubscribe()方法
什么是subject?
一种特殊的observable
subject与observable有什么区别?
subject是多播的;observable是单播的。
subject即时数据的生产者也是消费者,observable是数据生产。
什么是多播?
并不是observable不能被多次订阅,只是订阅的观察者是独立执行的,而subject订阅以后每个next流是共享的,是接收的。例子
subject 哪三种变形?
behaviorsubject、replaysubject、asyncsubject
behaviorsubject特定是什么?
next 执行传递 “当前值”,首次next初始化值为0
replaysubject 特定是什么?
可以根据“数量“,”时间“缓冲多个值,然后next推送
asyncsubject特点是什么?
observable执行complete()之后,执行next推送;只推送最后一个值
Operator是什么?
是一个纯函数,能返回一个新的observable的函数
实例操作符和静态操作符有什么区别?
实例操作符,是this指代输入的observable,返回一个新的observable;静态observable,输入非observable,返回一个observable。
操作符的分类有哪些?
- 创建操作符:create,from,interval,of….
- 转换操作符:map,groupBy….
- 过滤操作符:filter,debounce,take…
- 组合操作符:concat,forkjoin,merge…
- 多播操作符:muticast,share…
- 错误操作符:catch..
- 工具操作符:do…
scheduler调度器有什么特点?
- 有数据结构规定一定的标准或者优先级
- 决定执行的上下文环境
- 有一个虚拟的时钟
调度器的类型?
- null
- queue
- asap
- async
如何使用调度器?
- subscribeOn调用在什么样的上下文
- observeOn调度发送上下文
- 实例操作符可能会接受调度器参数