问题标签 [rxjs6]

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 投票
1 回答
656 浏览

angular - Angular:服务中的可观察订阅 - 将其与 ngOnChanges 一起运行(也)多次

所以我有这样的场景(简化)

  • 主要成分
  • 列表组件
  • 列表服务

在哪里:

主要成分

列表组件html

列出组件 ts

最后列出服务

出于某种原因,getAllByMonth 被调用了很多次......即使我只将月份值更改为 1。

当月份值发生变化时,应该如何安排 getAllByMonth 调用 ONCE 的东西?

0 投票
1 回答
1391 浏览

javascript - 从 RxJs 5 迁移到 6:switchMap 和 Interval 损坏

我很难理解 RxJs。我很难理解 5 到 6 之间的重大变化。

我有以下代码和以下问题。

  1. Observable 不再提供 .interval 方法
  2. .switchMap 方法不再可用于 .interval

我检查了更改日志和修复重大更改的建议,但我无法弄清楚我需要做什么。我理解它的方式是,我拥有的代码很旧并且不使用管道运算符,但这就是我能够弄清楚的全部。

0 投票
1 回答
9103 浏览

angular - TypeError: this.http.post(...).map 在将 angular 5 更新为 angular 6 后不是函数

将 Angular 5 更新到 Angular 6 后,我遇到了一些关于 rxjs6 的问题:

我尝试了一些方法,例如:

将此导入添加到 service.ts

从'rxjs/operators'导入{地图};

更改 http.post().pipe(map(res => {...}))

但是,所有这些都不适合我。

我的环境如下:

代码如下所示 Service.ts

另一个问题打字稿文件

0 投票
3 回答
4777 浏览

typescript - rxjs 6 - 可观察的到可观察的

我有一个发出对象数组的可观察对象。我需要使用哪些管道操作符将其转换为 Observable 以便我可以对每个对象进行操作?

我需要对 obs$ 做些什么才能使其像 obs2$ 一样发射?

0 投票
2 回答
5559 浏览

migration - RxJS 迁移 5 到 6 - 使用 TakeUntil 取消订阅

在 RxJS 6 中取消订阅的最佳方式是什么?

我的“旧”RxJS 5 代码看起来像这样

在迁移到 RxJS 6 时,我运行rxjs-5-to-6-migrate并得到了

但这不起作用,因为 EventEmitter 没有管道方法。

在 RxJS 6 中取消订阅的最佳方式是什么?

编辑:这在全新安装后确实有效,并且是在 RxJS 6 中取消订阅的最佳方式。

0 投票
1 回答
901 浏览

facebook - Ionic-Native、Angular 6、Ionic 4 - Facebook 和 Google 登录问题 - 对象不是函数

我正在尝试使用带有 Google Plus 和 Facebook 的科尔多瓦插件登录。这两个 npm 包都给了我这个问题:

core.js:1598 错误错误:未捕获(在承诺中):TypeError:Object(...) 不是函数 TypeError:Object(...) 不是 Object../node_modules 处 index.js:245 处的函数/@ionic-native/facebook/index.js (index.js:313) 在webpack_require (bootstrap:81) 在 Object../src/app/services/auth.service.ts (chunk-fe7f197d.js:144)在webpack_require (bootstrap:81) 在 Object../src/app/pages/login/login.page.ts (pages-login-login-module.js:115) 在webpack_require (bootstrap:81) 在 Object../ src/app/pages/login/login.module.ts (pages-login-login-module.js:21) 在webpack_require(bootstrap:81) at $_lazy_route_resource 惰性命名空间对象:37 at index.js:245 at Object../node_modules/@ionic-native/facebook/index.js (index.js:313) at webpack_require (bootstrap:81)在 Object../src/app/services/auth.service.ts (chunk-fe7f197d.js:144) 在webpack_require (bootstrap:81) 在 Object../src/app/pages/login/login.page.ts (pages-login-login-module.js:115) 在webpack_require (bootstrap:81) 在 Object../src/app/pages/login/login.module.ts (pages-login-login-module.js:21 ) 在webpack_require(bootstrap:81) at $_lazy_route_resource 惰性命名空间对象:37 at resolvePromise (zone.js:814) at resolvePromise (zone.js:771) at zone.js:873 at ZoneDelegate.push../node_modules/zone.js/ dist/zone.js.ZoneDelegate.invokeTask (zone.js:421) 在 Object.onInvokeTask (core.js:4053) 在 ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask ( zone.js:420) 在 Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:188)

我的信息是:

@ionic/cli-utils:2.0.0-rc.6 离子(离子 CLI):4.0.0-rc.6

全局包:

科尔多瓦(科尔多瓦 CLI):8.0.0

本地包:

@angular-devkit/core:0.6.0 @angular-devkit/schematics:0.6.0 @angular/cli:6.0.1 @ionic/schematics-angular:1.0.0-rc.6 Cordova 平台:无离子框架:@离子/角度 4.0.0-alpha.7

系统:

Android SDK 工具:26.1.1 NodeJS:v8.9.4 npm:6.1.0 操作系统:Windows 10

环境变量:

ANDROID_HOME : D:\SumTech Solutions\Software\Android_SDK

仅当我将 Imports 添加到我的 auth.service 中的构造函数时,这才成为一个问题。

0 投票
2 回答
309 浏览

angular - Observable.forkJoin 在 forkJoin 下显示一个波浪线

最近我开始了解 forkJoin,我们可以在其中组合多个 http 调用并使代码更整洁。但由于某种原因,我在 forkJoin 部分下得到了一个红色的波浪线。我已经通过这种方式导入了 observable

这就是我使用 forkJoin 的方式 在此处输入图像描述

0 投票
2 回答
3286 浏览

angular - MatTableDataSource - 当新记录添加到服务器时如何刷新表

我的数据提取工作完美,但在添加新记录后无法重新加载工作。据我所知,每当对行为主体调用下一个方法时,所有观察者都会收到通知,并且数据重新加载会自动发生。但不是那样发生的。

组件.ts

这是发布新记录的代码

服务.ts

0 投票
1 回答
130 浏览

angular - 取消订阅后,Angular Rxjs observable 不会再次触发

我正在使用 Observable 收听套接字并在我的一个组件中订阅它。如果我不取消订阅ngOnDestroy,当我再次访问该组件时,它会触发 N 次(N 是我切换回该组件的次数),但如果我取消订阅,ngOnDestroy它会在我第一次去时收听该组件,当我转到其他组件并返回时,它不会触发。

在监听组件的构造函数中

0 投票
0 回答
189 浏览

javascript - RXJS v6 加载了许多不必要的模块?

Ben Lesh告诉我,在 rxjs6 中,我们不应该这样做:

import { Observable } from 'rxjs/Observable';

也适用于运营商:

所以我将我的 proj 更改为 v6 。

以下是用法:

在此处输入图像描述

但是看看 bundle 中有多少个操作符:

在此处输入图像描述

完整列表在这里

问题:

这是为什么 ?我是否错误地导入了运算符?为什么我会看到所有那些未使用的运算符?

网页包文件