RxJS 介绍
RxJS:The Reactive Extensions for JavaScript (RxJS) 是一个JavaScript类库,用于处理数据流,尤其在处理实时异步数据流非常方便。
查看官方4.0 文档可以去github的官方仓库:RxJS4.0
应用程序的响应式的需求
应用程序 ,包括web 应用已经不在是简单的静态页面了,我们需要在页面中加入更多的动画,数据,异步的行为,Reactive Extension(响应式的拓展)可以提供工具帮助管理和构建响应式的应用响应式拓展是什么
RxJS用于使用observable 序列构建异步的,基于事件的程序。并提供对observable对象的操作(operator),使用Scheduler参数化异步数据流中的并发。RxJS=Observables+Operators+Schedulers
在JavaScript 和nodejs中,Promise也可以做类似的事件,但Rx更强,Promise不能接受多个返回值的请求。
使用RxJS,任何的数据都被当做数据流,基于流,我们可以绑定事件,查询,过滤。并且能同步的取消或处理异常。
下面javascript代码将会展示RxJS如何操作和迭代数据并返回结果。
/* Get stock data somehow */
const source = getAsyncStockData();
const subscription = source
.filter(quote => quote.price > 30)
.map(quote => quote.price)
.subscribe(
price => console.log(`Prices higher than $30: ${price}`),
err => console.log(`Something went wrong: ${err.message}`)
);
/* When we're done */
subscription.dispose();
我们接受到了数据并把他当做流。filter()map()操作流之后交给subscribe()处理结果。dispose()方法在最后取消订阅的流。
仅仅简单了解RxJS,是无法在实际项目中应用的,要想深入了解,还需继续学习RxJS的API。