“AI 技术+人才”如何成为企业增长新引擎?戳此了解>>> 了解详情
写点什么

RxJS 6 发布,改进了性能和模块化

  • 2018-05-22
  • 本文字数:1027 字

    阅读完需:约 3 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

RxJS 团队宣布RxJS 6.0 发布。6.0 改进了模块化方法和平滑迁移性能、为简化升级而添加了反向兼容软件包,并为TypeScript 用户提供了代码迁移。

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 的 TypeScript 用户使用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 是一种用于响应式编程的软件库,它使用 Observable 构建异步代码或基于回调的代码。RxJS 中 Observable 部分的标准化工作已经启动,并有望作为未来 JavaScript 版本的组成部分。但是推进 Observable 建议仍未受其牵引。

RxJS 使用 Apache 2 许可发布。更多信息,请访问 RxJS 网站。欢迎开发人员通过 RxJS GitHub 项目做出贡献。

查看英文原文: RxJS 6 Release Improves Performance and Modularity

2018-05-22 19:002047
用户头像

发布了 391 篇内容, 共 125.9 次阅读, 收获喜欢 255 次。

关注

评论

发布
暂无评论
发现更多内容

架构师训练营第四周-系统架构综述

草原上的奔跑

做产品少走弯路:你需要懂点高阶的知识

我是IT民工

产品 管理 知识体系

极客时间架构师训练营 - week4 - 作业 2

jjn0703

深入浅出Shiro系列——权限认证

程序员的时光

权限系统

大型系统常用的技术方案和技术手段

imicode

架构师第四周学习总结

傻傻的帅

架构师第四周作业

傻傻的帅

一个典型的大型互联网应用系统的技术方案&手段

Amy

极客大学架构师训练营 作业 第四周

大型互联网应用系统的技术方案和手段(训练营第四课)

看山是山

分布式 微服务 极客大学架构师训练营

架构师训练营」第 4 周作业

edd

浅谈互联网系统架构

鲁米

Week04 作业

极客大学架构师训练营

架构师训练营第四周作业

一剑

【微信聊天】5张图帮你看懂二分查找

Java小咖秀

Java 算法 漫画 二分查找

小师妹学JVM之:逃逸分析和TLAB

程序那些事

Java JVM TLAB 逃逸分析 签约计划第二季

架构师训练营 Week 04 总结

Wancho

大型互联网系统使用的技术和方案

极客李

维基百科(Wikipedia)网站架构设计分析

架构5班杨娟Jessie

极客大学架构师训练营

大型互联网应用系统技术方案和手段总结

CATTY

互联网

架构师训练营 week03 总结

尔东雨田

极客大学架构师训练营

Week 04 命题作业

卧石漾溪

极客大学架构师训练营

云计算 “拍了拍” Serverless

零度

云计算 Serverless 互联网 计算机

Week4 作业

Shawn

重学 Java 设计模式:实战观察者模式「模拟类似小客车指标摇号过程,监听消息通知用户中签场景」

小傅哥

Java 设计模式 小傅哥 代码优化 观察者模式

互联网架构演化

极客李

本周的一些总结

Geek_zhangjian

【极客大学】【架构师训练营】【第四周】典型大型互联网应用系统的技术方案和手段

NieXY

极客大学架构师训练营

用100行代码手写一个Hystrix

小眼睛聊技术

Java 架构 高可用 设计 后端

week4总结---系统架构

a晖

第四周总结

Geek_5d0795

极客大学架构师训练营

架构师训练营 week03 作业

尔东雨田

极客大学架构师训练营

RxJS 6发布,改进了性能和模块化_JavaScript_Dylan Schiemann_InfoQ精选文章