Rx是什么啊
全称 Reactive Extensions (Rx) 原来是由微软提出的一个综合了异步和基于事件驱动编程的库包,使用可观察序列和LINQ-style查询操作。
是反应式编程 或者是叫响应式编程里面所需用到的一个东西,在各个不同的语音里面都实施了这个方法
使用Rx, 开发者可以用Observables来表达异步数据流,使用LinQ操作查询异步数据流,使用Schedulers参数化异步数据流中并发。
Rx = Observables + LINQ + Schedulers.
Rx最显著的特性是使用可观察集合(Observable Collection)来达到集成异步(composing asynchronous)和基于事件(event-based)的编程的效果。
使用Rx, 对于无论来自哪里的多少异步数据流,比如来自股票,Twitter的帖子,或计算机事件,或Web服务的请求等等,只要使用接口 IObserver<T>来订阅这些事件流,然后使用接口 IObservable<T> 在事件发生时提醒通知这些订阅者。
因为可观察的序列是数据流,你能使用标准的LINQ来查询它们,这是通过Observable的扩展方法. 这样你能过滤 聚合 组合分析这些事件。
Rx实现由如下项目:
Rx.NET:微软自己的Rx实现。
RxJS: javascript扩展
RxCpp: C 和 C++.扩展
Rx.rb: ruby
RxPy: Python 3 (Rx.Py)
RxJava:是Netflix推出的一个基于JVM的Microsoft Reactive Extensions 扩展,提供Java, Scala, Clojure, 和 Groovy语言实现。