2013年12月31日星期二

RxJS的异步、LINQ和未来

Reactive Extensions for JavaScript 2.2包含一个可选的组件(rx.async.js),用于异步数据源。它满足了绑定到事件、回调和promise的需要。

对于标准事件,Rx.Observable.fromEvent函数只要求对象持有事件和事件名称。 对于自定义事件,Rx.Observable.fromEventPattern允许传递单独的函数,用于添加和解除事件处理程序。

将promise转换为可观察对象(observable)也十分简单。在构造完promise之后,用Rx.Observable.fromPromise包装一下即可。

对于JavaScript开发者,特别是Node.js开发者来说,回调必然是需要重点考虑的部分。

因此Async RxJS为标准Node风格的回调提供了包装器。后者假设回调的第一个参数用于传递错误信息。

RxJS的未来

RxJS未来的一个方向是查询表达式解析。和.NET的LINQ一样,开发者可以在运行时对IndexDB和OData这样的数据源创建查询。尽管OData可以应对大多数场景,但这无疑为创建其他LINQ化的提供器打开了大门。

Rx要解决的另一个问题是回压(back pressure)。当传入消息过于频繁而无法处理时,Observer可以对源进行节流。

原文链接:Async, LINQ, and the Future of RxJS

转自 http://www.infoq.com/cn/news/2013/12/RxJS-Futures


没有评论:

发表评论