RXJS 依赖的可观察量

问题描述 投票:0回答:1

我有 3 个观察值:

query$ = this.q$.pipe(tap(() => this.page$.next(0));
filter$ = this.f$.pipe(tap(() => this.page$.next(0));
page$ = new BehaviorSubject<number>(0);

combinetLatest({
  query: this.query$,
  filter: this.filter$,
  page: this.page$
})
.pipe(
  switchMap(({ query, filter, page }) => {
    ...
  })
);

每当它们中的任何一个发出时,我都必须将它们的值传递到流中。然而,使用

combineLatest
会导致至少两次冗余发射。我尝试连接
distinctUntilChanged()
,但这也会在某个时刻产生一个冗余发射。

请协助:(或者也许我的整个方法/想法是不正确的,我不应该改变

page$
作为
query$
的副作用,
filter$

javascript angular rxjs reactive-programming
1个回答
0
投票

那么,您更喜欢立即发出哪些可观察量,哪些您应该只知道它们的值?获取您的主要可观察量,然后使用

withLatestFrom
运算符添加另外两个,只是为了接受数据,但不发出您的根源。因此,您的流只会被一个调用,但会接受两个附加数据

© www.soinside.com 2019 - 2024. All rights reserved.