我有 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$
?
那么,您更喜欢立即发出哪些可观察量,哪些您应该只知道它们的值?获取您的主要可观察量,然后使用
withLatestFrom
运算符添加另外两个,只是为了接受数据,但不发出您的根源。因此,您的流只会被一个调用,但会接受两个附加数据