问题标签 [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.
angular - Angular:服务中的可观察订阅 - 将其与 ngOnChanges 一起运行(也)多次
所以我有这样的场景(简化)
- 主要成分
- 列表组件
- 列表服务
在哪里:
主要成分
列表组件html
列出组件 ts
最后列出服务
出于某种原因,getAllByMonth 被调用了很多次......即使我只将月份值更改为 1。
当月份值发生变化时,应该如何安排 getAllByMonth 调用 ONCE 的东西?
javascript - 从 RxJs 5 迁移到 6:switchMap 和 Interval 损坏
我很难理解 RxJs。我很难理解 5 到 6 之间的重大变化。
我有以下代码和以下问题。
- Observable 不再提供 .interval 方法
- .switchMap 方法不再可用于 .interval
我检查了更改日志和修复重大更改的建议,但我无法弄清楚我需要做什么。我理解它的方式是,我拥有的代码很旧并且不使用管道运算符,但这就是我能够弄清楚的全部。
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
另一个问题打字稿文件
typescript - rxjs 6 - 可观察的到可观察的
我有一个发出对象数组的可观察对象。我需要使用哪些管道操作符将其转换为 Observable 以便我可以对每个对象进行操作?
我需要对 obs$ 做些什么才能使其像 obs2$ 一样发射?
migration - RxJS 迁移 5 到 6 - 使用 TakeUntil 取消订阅
在 RxJS 6 中取消订阅的最佳方式是什么?
我的“旧”RxJS 5 代码看起来像这样
在迁移到 RxJS 6 时,我运行rxjs-5-to-6-migrate
并得到了
但这不起作用,因为 EventEmitter 没有管道方法。
在 RxJS 6 中取消订阅的最佳方式是什么?
编辑:这在全新安装后确实有效,并且是在 RxJS 6 中取消订阅的最佳方式。
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 中的构造函数时,这才成为一个问题。
angular - MatTableDataSource - 当新记录添加到服务器时如何刷新表
我的数据提取工作完美,但在添加新记录后无法重新加载工作。据我所知,每当对行为主体调用下一个方法时,所有观察者都会收到通知,并且数据重新加载会自动发生。但不是那样发生的。
组件.ts
这是发布新记录的代码
服务.ts
angular - 取消订阅后,Angular Rxjs observable 不会再次触发
我正在使用 Observable 收听套接字并在我的一个组件中订阅它。如果我不取消订阅ngOnDestroy
,当我再次访问该组件时,它会触发 N 次(N 是我切换回该组件的次数),但如果我取消订阅,ngOnDestroy
它会在我第一次去时收听该组件,当我转到其他组件并返回时,它不会触发。
在监听组件的构造函数中
javascript - RXJS v6 加载了许多不必要的模块?
Ben Lesh告诉我,在 rxjs6 中,我们不应该这样做:
import { Observable } from 'rxjs/Observable';
但
也适用于运营商:
所以我将我的 proj 更改为 v6 。
以下是用法:
但是看看 bundle 中有多少个操作符:
问题:
这是为什么 ?我是否错误地导入了运算符?为什么我会看到所有那些未使用的运算符?