RxJS 的异步、LINQ 和未来

  • Jonathan Allen
  • 姚琪琳

2013 年 12 月 30 日

话题:JavaScript语言 & 开发

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

JavaScript语言 & 开发