东亚银行、岚图汽车带你解锁 AIGC 时代的数字化人才培养各赛道新模式! 了解详情
写点什么

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

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

关注

评论

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

5分钟速读之Rust权威指南(八)

wzx

rust

论:在996的天下,Java程序员该如何高效学习

Java架构师迁哥

科大讯飞语音转文字以及中文分词的Java测试代码

Jerry Wang

Java 人工智能

SAP CRM WebClient UI里的文件是如何上传到ABAP Netweaver后台的

Jerry Wang

chrome CRM SAP WebClient UI

WLS2搭建Django部署环境

IT蜗壳-Tango

5月日更

为什么5、6月会空缺出大量技术岗?跳槽注意事项+面试官关心什么

Java架构师迁哥

IO

ltc

IO流

redis sentinel架构

王瑞强

使用ABAP和JavaScript代码生成PDF文件的几种方式

Jerry Wang

JavaScript PDF abap Acrobat

简单了解 MySQL 中相关的锁

leonsh

MySQL 后端

UI5应用部署到Fiori On-Premise和On-Cloud的Launchpad

Jerry Wang

Fiori SAP UI5 Launchpad

ABAP Netweaver, Hybris Commerce和SAP 云平台的登录认证

Jerry Wang

abap Netweaver Hybris Commerce Cloud

SAP Netweaver和Hybris的数据库层

Jerry Wang

abap Hybris

利用Excel导入数据到SAP C4C

Jerry Wang

Excel SAP C4C Cloud for Customer

Dubbo 路由规则之条件路由

青年IT男

dubbo

存储技术入门,这些硬件应该首先有所了解

SunnyZhang的IT世界

服务器 存储 交换机 san

数据湖vs数据仓库vs数据集市

数据社

数据仓库 数据湖 5月日更

使用Excel调用ABAP系统的函数

Jerry Wang

Excel Office SAP abap

SAP成都C4C小李探花:浅谈Fiori Design Guidelines

Jerry Wang

大前端 Fiori SAP UI5

UI5 Source code map机制的细节介绍

Jerry Wang

JavaScript SAP SAP UI5

面向WEB开发人员的Docker(五):部署开发WordPress

devpoint

Docker Wordpress 部署 Docker-compose

动态控制SAP C4C UI元素的显示和隐藏

Jerry Wang

CRM SAP C4C Cloud for Customer

使用Excel消费C4C的OData service

Jerry Wang

Excel SAP C4C OData

SAP CRM, C4C和Hybris的后台作业

Jerry Wang

CRM SAP C4C Hybris

SAP CRM WebClient UI和Hybris backoffice UI开发的相同点

Jerry Wang

CRM SAP abap WebClient UI Hybris

人生算法:掌控大脑的两种模式

石云升

读书笔记 思维模型 5月日更

双非渣硕也能上岸?痛述阿里Java岗7轮技术面经历,险幸上岸

Java 程序员 架构 面试

throw与throws的区别学习笔记

风翱

异常 5月日更

(VMware)ubuntu环境下搭建Swarm+Stack一站式部署容器集群

逸少

Docker Docker Swarm Docker-compose Ubuntu20.04

C4C和CRM里获取当前登录用户分配的Organization Unit

Jerry Wang

CRM SAP C4C Cloud for Customer

如何将Twitter的内容导入到SAP CRM和C4C

Jerry Wang

twitter CRM SAP C4C Cloud for Customer

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