写点什么

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

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

关注

评论

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

ZOC8 for Mac(终端仿真器软件)v8.09.1激活版

小玖_苹果Mac软件

方剂辩证辅助系统(源码+文档+部署+讲解)

深圳亥时科技

mac虚拟机哪款好用?vm虚拟机VMware Fusion Pro 12 密钥及安装教程

理理

在华为开发者空间,基于FunctionGraph快速部署在线画图工具

华为云开发者联盟

软件开发 云主机 API 接口

【Elasticsearch】使用阿里云 infererence API 及 semantic text 进行向量搜索

阿里云大数据AI技术

elasticsearch 阿里云 API AI搜索

如何杜绝LED舞台租赁屏事故的发生?

Dylan

LED display LED显示屏 虚拟演唱会 市场 舞台表演

After Effects 2020:解锁电影级特效,打造视觉大片!

理理

XMind思维导图安装包永久使用-mac/win

理理

桌面宠物软件哪款好?桌面宠物软件推荐Desktop Goose抖音桌面宠物鹅

理理

autocad2022 for mac中文破解版及cad2022安装教程

理理

Xliff文件编辑软件Xliff Editor for Mac激活版

小玖_苹果Mac软件

可视化网页开发工具Blocs for Mac激活版

小玖_苹果Mac软件

业权一体化管理能力建设

芯盾时代

iam 权限管理系统 授权访问

解析$nextTick魔力,为啥大家都爱它?

京东科技开发者

QT 软件外包开发流程

北京木奇移动技术有限公司

软件外包公司 QT开发公司 QT开发团队

最受欢迎的矢量绘图设计应用Sketch for mac中文激活版

小玖_苹果Mac软件

Cornerstone 4 for Mac:Mac用户的学习神器,全新升级!

理理

云端新纪元:Cloud Studio引领开发与学习革命

代码忍者

WebAssembly场景及未来

江湖修行

前端 Web Web 3.0 WebAssenbly

Acrobat pro dc 2019 for mac(PDF专业制作软件)中文版

Mac相关知识分享

Parallels Desktop 19:性能与稳定性并存的虚拟机解决方案

理理

Microsoft Office LTSC 2024 for Mac(office全家桶)新功能介绍

理理

nginx+lua+redis实现灰度发布

京东科技开发者

【玩转金融素材生成】探索交互式AIGC组合素材生成技术

京东科技开发者

Adobe Creative Cloud(Adobe桌面应用程序ACC)

理理

AI工具百宝箱|CodeArena:开源编程语言模型代码对决平台,等你来战!

可信AI进展

苹果mac壁纸软件推荐:Dynamic Wallpaper for Mac中文最新版

理理

Turbo Boost Switcher Pro for mac(CPU 温度监测及性能调节工具)

Mac相关知识分享

Drive Scope for mac(硬盘健康检查预警软件)

Mac相关知识分享

Sketch for mac(专业矢量绘图设计软件)v101.6中文版

理理

Permute 3 for mac(全能媒体格式转换器)

Mac相关知识分享

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