0%

rxjs概念关系

RXJS

这篇文章 主要针对看完rxjs文档,想对其做一个整体理解。文档地址rxjs
做了几个部分帮助大家理解记忆和运用

  1. 概念总览
  2. 关键点理解

概念总览图

概念关系图

关键理解点

什么是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调度器有什么特点?
  1. 有数据结构规定一定的标准或者优先级
  2. 决定执行的上下文环境
  3. 有一个虚拟的时钟
    调度器的类型?
  4. null
  5. queue
  6. asap
  7. async
    如何使用调度器?
  8. subscribeOn调用在什么样的上下文
  9. observeOn调度发送上下文
  10. 实例操作符可能会接受调度器参数