大模型“四虎”出山,亮相 4 月 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:002321
用户头像

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

关注

评论

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

以MySQL为例,来看看maven-shade-plugin如何解决多版本驱动共存的问题?

EquatorCoco

MySQL 数据库

新手使用住宅代理有哪些常见误区?

IPIDEA全球HTTP

金九银十来了,你的简历写好了么?

不在线第一只蜗牛

程序员 前端

关联比赛:  Apache Flink极客挑战赛——Flink TPC-DS性能优化

阿里云天池

TikTok直播限流与网络有关系吗?怎么解决?

Ogcloud

海外直播专线 海外直播 tiktok直播专线 海外直播网络 tiktok直播网络

GPU虚拟化技术简介:实现高性能图形处理的灵活部署

天翼云开发者社区

云计算 gpu 虚拟化技术

云原生主键模型:高效、弹性,省钱又省心

StarRocks

数据库 大数据 存算分离 存算分离架构 湖仓一体

React Native在移动端落地实践

智在碧得

跨端开发 移动端跨端 跨端技术 Neact Native 智在碧得

海外直播带货,怎样确保网络稳定流畅

Ogcloud

海外直播专线 海外直播 直播专线 海外直播网络 tk直播专线

河南大学OpenHarmony技术俱乐部正式揭牌成立

科技热闻

解析淘宝商品详情API返回值中的特殊属性

技术冰糖葫芦

api 网关 API Explorer API 策略 pinduoduo API

《有恃无恐》

充实的orzi

#小说 #艺术来源于现实

解析淘宝商品详情API返回值中的关键属性

代码忍者

观测云核心技术揭秘:基于时间的半结构化数据模型

观测云

数据结构

与客户建立联系,成为企业战略决策的引领者

智达方通

全面预算管理 财务管理 客户关系

算网资源调度关键技术

天翼云开发者社区

云计算 云服务

CRISP-DM的应用与理解

天翼云开发者社区

数据挖掘 CRISP-DM

PS插件:卡通人物漫画风格一键生成插件Cartoon Maker - Clone - Photoshop Plugin 汉化版

Rose

NocoBase 与百事通:为法律行业带来全新变革

NocoBase

低代码 无代码 客户案例

人工智能 | MetaLlama大模型

测试人

人工智能 软件测试

MetaLlama大模型

霍格沃兹测试开发学社

智能体进化发展了一年,现在的RPA Agent迭代到什么程度了?

王吉伟频道

RPA 智能体 大语言模型 AI Agent RPA Agent

淘宝店铺所有商品数据接口怎么获取

tbapi

淘宝API接口 淘宝店铺所有商品数据接口

无需推翻既有的建设,这个可观测性产品思路清奇

巴辉特

监控 可观测性 Prometheus 故障定位

私有云服务器虚拟化超分比及资源扩容管理

天翼云开发者社区

云计算 服务器 虚拟化

NFTScan | 08.26~09.02 NFT 市场热点汇总

NFT Research

NFT\ NFTScan

平台工程:它是什么?谁来做?怎么做?

北京好雨科技有限公司

rainbond 平台工程 企业号9月PK榜 kubernetes 云

ps2224最新版,Photoshop 2024(Win&Mac) 软件下载

你的猪会飞吗

PS2024破解 mac破解软件下载 ps2024中文

小白学深度学习:知识蒸馏研究综述

阿里云天池

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