我有一个页面,用户可以在其中输入值,然后执行搜索并将其返回给用户。
问题是,如果我键入的速度太快,它会打多个电话,有时会跳过我键入并在其之前使用该电话的最后一个字符。
我正在寻找一种抑制方法,并发现了debounce
。
我觉得我没有正确使用它,因为它似乎对我的工作没有影响。
// Component
sub: Subscription;
this.sub = this._empSearchService.employeeSearchData$
.debounceTime(1000)
.subscribe(
results => {
if (results) {
...
}
}
);
...
// On Key Up Event
this._empSearchService.searchMultipleEmployees(data)
.then((data: any) => {
this._empSearchService.updateSearchedEmployees(data);
});
// Service
private employeeSearchSub = new BehaviorSubject<any>(null);
employeeSearchData$ = this.employeeSearchSub.asObservable();
updateSearchedEmployees(obj) {
this.employeeSearchSub.next(obj);
};
对此有何想法?
我担心的是,当我在1秒内输入4个字符时,我看到了4个网络呼叫。我想我应该只看一个?