本文共 1349 字,大约阅读时间需要 4 分钟。
先梳理一些概念:
Rx:ReactiveX是Reactive Extensions的缩写,一般简写为Rx,最初是LINQ的一个扩展,由微软的架构师Erik Meijer领导的团队开发,在2012年11月开源,Rx是一个编程模型,目标是提供一致的编程接口,帮助开发者更方便的处理异步数据流,Rx库支持.NET、JavaScript和C++,Rx近几年越来越流行了,现在已经支持几乎全部的流行编程语言了,Rx的大部分语言库由ReactiveX这个组织负责维护,比较流行的有RxJava/RxJS/Rx.NET,社区网站是 。Observer 和 Observable: 在ReactiveX中,一个观察者(Observer)订阅一个可观察对象(Observable)。观察者对Observable发射的数据或数据序列作出响应。这种模式可以极大地简化并发操作,因为它创建了一个处于待命状态的观察者哨兵,在未来某个时刻响应Observable的通知,不需要阻塞等待Observable发射数据。
Rxjs: 刚才说了Rx是抽象的东西,rxjs就是使用JavaScript语言实现rx接口的类库。
它通过使用 observable 序列来编写异步和基于事件的程序。它提供了一个核心类型 ,附属类型 (Observer、 Schedulers、 Subjects) 和受 [Array#extras] 启发的操作符 (map、filter、reduce、every, 等等),这些数组操作符可以把异步事件作为集合来处理。可以把 当做是用来处理事件的
ReactiveX 结合了 、 和 ,以满足以一种理想方式来管理事件序列所需要的一切。
在 RxJS 中用来解决异步事件管理的的基本概念是:
map
、filter
、concat
、flatMap
等这样的操作符来处理集合。setTimeout
或 requestAnimationFrame
或其他。注意:网上很多例子都是基于rxjs5版本,而最新的rxjs6变化很大,具体和,后面的例子我都会基于rxjs6。
建议直接看官方文档,毕竟是最新的。
学好rxjs的关键是对Operators (操作符)的灵活使用,操作符就是纯函数,我们使用操作符创建,转换,过滤,组合,错误处理,辅助操作Observables。具体
下节介绍如何创建 Observables
转载地址:http://auibl.baihongyu.com/