网站搜索

angular - 使用 combineLatest 和 Rxjs 返回可观察对象的结果

我希望获得一个可观察对象的结果,该对象在每次值变化时减去默认值

每次数值变化时,它都会用输入字段中输入的新数值减去默认值

例如,默认值是5。

我在输入字段中输入4

结果是 5-4=1,所以我希望将 1 显示到输入框“Surface ha”中

我清空字段,然后输入 3 结果是 5-3=2,所以我希望将 2 显示在输入字段“Surface ha”中

所以所以....

如果我使用 console.log,我可以清楚地看到可观察对象的结果,但我希望将可观察对象的结果显示在同一个输入字段中

我在开发者控

阅读更多 →

angular - 如何通过 SystemJS/Angular2 访问 Rx.Scheduler.immediate 来使用 rxjs?

我想在我的 Angular2 项目中使用 RxJS 的 ImmediateScheduler。

然而,在我的 RxJS 安装中,这个不存在。我在 package.json 中使用的是 “rxjs”: “5.0.0-beta.12”,这是 Angular 2.1.2 所需要的。
当我查看 node_modules/ 文件夹时,我发现有一个 'rxjs' 文件夹和一个 'rx' 文件夹。ImmediateScheduler 不属于 'rxjs',而是属于 'rx'。我可以在 'rx/dist/rx.lite.js' 中找到它,甚至在我使用的 TypeScript 文件 'rx/ts/rx/rx-lite.ts' 中也能找到。

试图在我的 TypeScript 文件中像这样导入它

import {Scheduler} from "node_modules/rx/ts/rx-lite";

失败。文件本身找到了,但编译器抱怨“.../ts/rx-lite.d.ts 不是一个模块”.

我怎

阅读更多 →

typescript - Rxjs:从值或可观察对象创建可观察对象的简写

我正在使用 rxjs 和 TypeScript。我写了以下两个简单的函数。但我猜 rxjs 已经有这样的功能了。rxjs 有吗?

export function isObservable(value: any): value is Observable<any> { return value instanceof Observable; } export function createObservable<T>(value: T | Observ

阅读更多 →

TypeScript - Firebase 和 RxJS

我写了一个监听值事件的函数:

getUnreadMessages() : Observable<any>{ return new Observable(observer =>{ firebase.database().ref('messages/' + this.userService.getUserID()).on("value", (snapshot : any) =>{ let count = 0; ...some more logic here... observer.next(count); observer.complete(); }, (error) =>{ observer.error(error); }) }) }

当数据库发生变化时,我可以看到这个函数被调用了,但我在整个应用程序中订阅它的地方并没有触发。有任何建议吗?

阅读更多 →

angular - RXJS 操作符在 firebase 上无法使用

我正在使用 RXJS 操作符与 Firebase 可观察对象(distinct 和 filter)。这是我的 Firebase 树。我的代码如下:

let places this.db.list(`users/${this.authProvider.getUID()}/visitedPlaces`,{ query:{ orderByChild:"googleId" } }); places.distinct((p)=>{ console.log(p) return p.googleId; }). subscribe((snap)=>{

阅读更多 →

javascript - Typescript 在同一个文件中以不同方式解析模块 'rxjs'

我花了好几个小时在原地打转,所以该问另一个晦涩的问题了。

我在一个 lerna 单体仓库中,有两个子项目,ProjectA 和 ProjectB。

ProjectA 依赖于 rxjs,ProjectB 也是如此。

ProjectB 依赖于 ProjectA,lerna 通过使用符号链接来管理它。

问

阅读更多 →

typescript - RxJS6:完成后重置流

我一直在玩一玩 RxJS 6。我正在尝试实现 dragstart、dragmove 和 dragend。这是我目前的代码。

import { fromEvent } from 'rxjs'; import { concatMap } from 'rxjs/internal/operators/concatMap'; import { map } from 'rxjs/internal/operators/map'; import { takeUntil } from 'rxjs/internal/operators/takeUntil'; import { repeat } from 'rx

阅读更多 →

typescript - 在 Angular 中使用 RxJs 时,我是否只需要完成组件中创建的 Observables?

基本上,我仍然不太确定在 Angular 组件中如何清理响应式代码。以下规则是否正确且足够?

我对于响应式组件的规则:

  • 关于手动 x.subscribe():

    • 如果使用 x.takeUntil(...) 或类似的结构,则无需手动清理
    • 如果在组件作用域中调用 x.complete(),则无需手动清理
    • 否则根据需要或在 ngOnDestroy() 中手动 .unsubscribe()
  • 在模板的 observable | async 上:

    • 无需手动清理,并且兼容 onPush
  • 关于像 new Subject() 这样手动直接创建 Observable:

typescript - rxjs 分页以及对每一页的订阅

我们正在通过 WebSocket 查询 graphql,以订阅实体列表。由于该列表应该可以无限滚动,我们使用了分页。我们还希望在前端的列表中实时看到数据库所做的更改。

这个列表可以被筛选、排序和分页。

我们有一个类 SelectParams 可以帮助我们做到这一点:

export class SelectParams { page = 0; query = ''; sort: Sort = { sortBy: 'creationDate', sortOrder: 'DESC' }; take = 30; }

然后当我们想要订阅一个列表时,我们只需提供一个 selectParams$=Observable<SelectParams> 来获取这个“响应式”的列表,并对 selectPa

阅读更多 →

typescript - Angular 6 使用 RxJS 出错:无法读取未定义的属性 'call'

我正在尝试将一个 Angular 5 应用迁移到 Angular 6,并且我有一段 RxJS 代码让我感到困惑。我已经通过谷歌搜索并阅读了足够多的 RxJS 文档,知道我应该使用 .pipe,但我还是不太理解语法。

该代码在用户输入搜索字段时会返回来自 API 调用的结果。新版本目前抛出以下错误:

ERROR TypeError: Cannot read property 'call' of undefined at merge.js:8 at MapSubscriber.project (switchM

阅读更多 →