在我的应用程序中,我使用的是 NGRX 和 RXJS。我有一个窗口,用户可以通过在文本框中输入自由格式文本或单击页面上的订单项来查看详细信息来过滤订单。
我有两个可观察对象,我想调用我的商店并通过过滤任一方式来获取详细信息,但我想使用 combineLatest 函数来简化我的代码。文本搜索传入一个要搜索的字符串,而单击传入一个数字 id。我的代码中已经有了这个:
//Text search
this.valueChanges = this.search.valueChanges
.pipe(debounceTime(170), distinctUntilChanged())
.subscribe(value => {
this.hasValue = value.length > 0;
this.store$.dispatch(new QueryAction({ value }));
});
//Item click
this.clickChanges = this.selected$.subscribe(value => {
let Id = value.id.toString();
this.store$.dispatch(new QueryAction({ value: Id }));
});
我的问题是如何简化此代码以使用 combineLatest,因为两者都是非常相似的操作,并且执行搜索存储在商店中的项目以根据输入的文本进行过滤。