QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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:002260
用户头像

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

关注

评论

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

PLC笔记 知识点汇总 day1

万里无云万里天

PLC 工厂运维

经验整理 知识与传承

万里无云万里天

硬件 嵌入式 经验总结

Cookie for Mac(浏览器缓存清理工具)

Mac相关知识分享

缓存清理工具

工业控制 词汇整理 day4

万里无云万里天

自动化 工厂运维

认证总结 SACE分析专家

万里无云万里天

数据分析 考试认证

经验整理 仓库与产线

万里无云万里天

仓库管理 工厂管理

Clipboard Manager for mac(mac剪贴板管理软件)

Mac相关知识分享

SnapMotion for Mac(mac视频截图工具)

Mac相关知识分享

视频截图工具

企业im(即时通讯)作为安全专属的移动数字化平台的重要工具

BeeWorks

LDO产品的基础知识解析

芯动大师

芯片 LDO 电源

喜报 | 极限科技获得北京市“创新型”中小企业资格认证

极限实验室

创新型中小企业 极限科技

经验整理 基于8051的数据采集系统(科技向)

万里无云万里天

嵌入式 数据采集 8051

MYSQL深入浅出系列-MVCC并发版本控制

MySQL MVCC 数据库并发

电子元件笔记 知识点汇总 day1

万里无云万里天

电子元器件 工厂运维

认证总结 低压电工作业取证

万里无云万里天

低压电工 工厂运维 电工

工业控制 词汇整理 day7

万里无云万里天

自动化 工厂运维

喜报!工业物联网时序数据库 IoTDB 荣获第七届“创业北京”创业创新大赛海淀区二等奖

Apache IoTDB

Loopback for Mac(mac虚拟音频设备)

Mac相关知识分享

音频设备软件

认证总结 高压电工(运行)取证

万里无云万里天

工厂运维 电工 高压

工业控制 词汇整理 day2

万里无云万里天

自动化 工厂运维

工业控制 词汇整理 day8

万里无云万里天

自动化 工厂运维

认证总结 SACA分析师

万里无云万里天

数据分析 认证考试

联想全栈AI之海,纳智能中国的山川万物

脑极体

AI

工业控制 词汇整理 day1

万里无云万里天

自动化 工厂运维

工业控制 词汇整理 day3

万里无云万里天

自动化 工厂运维

工业控制 词汇整理 day5

万里无云万里天

自动化 工厂运维

工业控制 词汇整理 day9

万里无云万里天

自动化 工厂运维

喜报!工业物联网时序数据库 IoTDB 荣获第七届“创业北京”创业创新大赛海淀区二等奖

Apache IoTDB

低压电工笔记 知识点汇总 day1

万里无云万里天

低压电工 工厂运维

工业控制 词汇整理 day6

万里无云万里天

自动化 工厂运维

经验整理 初学51单片机建议用C语言

万里无云万里天

嵌入式 单片机 8051

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