问题标签 [rxjs-compat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
27087 浏览

javascript - rxjs/Subscription 没有导出的成员“订阅”

我将我的 Angular 项目和所有依赖项更新到最新版本。没有太多麻烦,我解决了大部分依赖问题,但我仍然坚持使用 RxJS。这是我的 package.json:

我只从 RxJS 导入两个模块:

他们都给出了同样的错误:

对于fromPromise. 这是我得到的错误消息Subscribtion.d.ts(我没有以任何方式修改代码)

在此处输入图像描述

更新:

下面的答案解决了 Subscription 的问题,但fromPromise即使导出正确,仍然会出现同样的问题:

export * from 'rxjs-compat/observable/fromPromise';

在此处输入图像描述

0 投票
3 回答
1621 浏览

angular - 将 rxjs 升级到 6 后,类型“Observable”上不存在属性“地图”

我按照https://update.angular.io的说明将我的 Angular 应用程序从 5.2 版升级到了 6.0 版。

现在,由于“rxjs-5-to-6-migrate”迁移,我的 Angular 应用程序无法构建:

bla.ts 中的错误:错误 TS2339:“可观察”类型上不存在属性“地图”。

我有以下进口:

如果我像这样更改导入,它会起作用:

但我不明白为什么......我想使用显式导入而不是导入所有运算符。


更新:正如一些答案指出的那样,我必须使用管道才能使用运算符。这是我的问题,因为我认为我仍然可以将运算符链接到可观察对象。

老式:

新风格

0 投票
2 回答
795 浏览

rxjs - 如何只使用 rxjs-compat 的一部分,或者编写一个自定义的 rxjs-compat?

我们已经更新了我们的项目以使用 Angular 和 Rxjs 6 并且一切正常。

我们还更新了代码以使用管道运算符,因此我们希望删除rxjs-compat.
唯一的问题是我们的依赖项之一仍然使用 Observable 和 Subject 的旧导入语法。

有什么方法可以为这两个类提供我们自己的最小 rxjs-compat 吗?

该库没有对 Observable 和 Subject 做任何花哨的事情,也没有使用任何运算符,因此导入完整的 rxjs-compat 包似乎有点过头了。

0 投票
0 回答
268 浏览

angular - 迁移到 rxjs 6 gulp build.bundle.rxjs 时抛出错误

我正在从 rxjs 5.5 升级到 6.2.1。我浏览了代码库并进行了 rxjs 迁移文档中建议的所有更改,更改了导入、管道而不是链接等。当我运行我npm installbuild.bundle.rxjs脚本时,在 rxjs-compat 的 fetch 上抛出错误并说它正在加载 rxjs/ Rx,我在我的代码库中找不到参考。有没有其他人在升级他们的 rxjs 时遇到过类似的问题?

编辑:

我发现错误的根源来自我的 node_modules 中的各种包。他们正在使用已弃用的导入路径。

0 投票
1 回答
79 浏览

angular - 将我的 Angular 项目从 5x 升级到 6x 后的问题

我刚刚按照通常的指南将我的 Angular 5 项目升级到 6。我已经更新了我的包并且还安装了 rxjs-compat 包并运行以下命令从 rxjs 5 迁移到 rxjs 6

我的 package.json 如下所示

我正在使用 Visual Studio 2017 并且错误列表中显示了许多错误

任何人都可以提供进一步的帮助和建议吗?

请看附件图片

Types.d.ts错误 http服务api错误

我的项目属性如下所示

项目属性

0 投票
1 回答
110 浏览

rxjs - 从 'rxjs' 导入并带有 'rxjs-compat' 作为附加依赖项不会使兼容的 Observables

rxjs 5-6 迁移说明的措辞,以及像这样的博客文章暗示,只需将“rxjs-compat”作为我们项目的依赖项与“rxjs”一起,然后从“rxjs”导入 Observables、Subjects 等将与传统运营商兼容。例如。Observable.of(3, 4, 5).concatMap(num => {/*...*/}). 然而,这对我们来说似乎并非如此。如果我们直接从 'rxjs-compat' 导入,事情确实会按预期工作,这似乎不是预期的迁移路径,并且也很不方便,因为 'rxjs' 的 TypeScript 声明更完整,并且两者都有导入在同一个文件中的 rxjs' 和 'rxjs-compat' 将来清理起来会有点烦人。是否有额外的步骤,或者正在从“rxjs-compat”导入

0 投票
0 回答
71 浏览

typescript - TS rxjs-compat 不支持原型运算符?

我正在按照此迁移指南rxjs 5.5.5 更新到 6 ..**。从本文和许多其他帖子中可以看出,只要在我的项目中使用rxjs-compat就可以逐步迁移。更糟糕的是,它似乎对其他人都有效。我的理解是rxjs-compat将允许我同时使用可管道运算符和可观察原型运算符。但要么这不是rxjs-compat的情况,要么是有问题。

所以我的期望是,例如,当observablerxjs. 但我收到以下错误“错误 TS2339:‘可观察’类型上不存在属性‘地图’。” . 这当然意味着打字不正确。

从 vesrion开始,我已经尝试了不同版本的 typescript ( 2.7.2, 2.9.1, 3.1.1) 以及rxjs和rxjs -compat。还尝试使用tsconfig 路径并将rxjs 别名为 rxjs-compat,但这还不够。6.0.0latest

所以说实话,它真的支持原型操作符吗?我需要一些额外的配置吗?一些匹配的版本?任何事物?

如果需要,我可以提供其他信息(package.json、tsconfig 等)。

这是可以下载进行测试的设置。在本地我只是运行tsc index并且它失败了