RxJS团队宣布RxJS 6.0发布。6.0改进了模块化方法和平滑迁移性能、为简化升级而添加了反向兼容软件包,并为Type 用户提供了代码迁移。
rxjs-compat软件包提供了一个版本间的兼容层,用于实现从RxJS 5到6的平滑迁移,
用户可以使用npm安装RxJS 6和兼容层,命令如下:
npm install rxjs@6 rxjs-compat@6 --save
兼容层使代码无需更改即可升级到6。但如果开发人员想在部署到生产环境前降低RxJS源包的大小,还应于此后升级自身的源代码。
Angular 6用户也可受益于RxJS的Schematics。他们可以利用Angular 6提供的ng update机制在应用中自动安装rxjs-compat。
RxJS 6将模块导入路径重新组织为如下几类:
- rxjs: 创建方法、类型、调度器和工具。
- rxjs/ajax: RxJS HTTP请求实现。
- rxjs/operators: 可链式调用(Pipeable)的RxJS操作符。
- rxjs/testing: RxJS测试工具。
- rxjs/webSocket: RxJS WebSocket实现。
推荐RxJS的Type 用户使用rxjs-tslint,它有助于将版本5的导入路径重构为版本6。
RxJS 6的另一个显著改进,是将操作符转变为使用链式调用API。RxJS的前期版本中以对操作法原型打补丁的方式提供了链式调用,但这样的全局实现引入了一些挑战,包括对WebPack的摇树(tree-shaking)优化功能,以及对代码检查(linting)工具。
例如,下面给出的例子代码使用了RxJS 5:
source
.map(x => x + x)
.mergeMap(n => of(n + 1, n + 2)
.filter(x => x % 1 == 0)
.scan((acc, x) => acc + x, 0)
)
.catch(err => of('error found'))
.subscribe(printResult);如果使用RxJS 6,那么代码变为:
source.pipe(
map(x => x + x),
mergeMap(n => of(n + 1, n + 2).pipe(
filter(x => x % 1 == 0),
scan((acc, x) => acc + x, 0),
)),
catchError(err => of('error found')),
).subscribe(printResult);近期,RxJS项目牵头人Ben Lesh也谈及了RxJS 6,并介绍了支持项目改进的动机所在。
RxJS使用Apache 2许可发布。更多信息,请访问RxJS网站。欢迎开发人员通过RxJS GitHub项目做出贡献。
继续阅读与本文标签相同的文章
上一篇 :
vue 利用路由守卫判断是否登录的方法
下一篇 :
Python实现App自动签到领取积分功能
-
加速4G、5G网络演进 全“芯”展锐出新招
2026-05-18栏目: 教程
-
男朋友说“亲亲”,先别急着回“木马”,这样回撩他一辈子
2026-05-18栏目: 教程
-
使用vim在文件中插入命令执行的输出结果
2026-05-18栏目: 教程
-
技术分享:轻松调试Stream
2026-05-18栏目: 教程
-
外卖产业呈现新气象,品质化发展趋势明显
2026-05-18栏目: 教程
