Angular-如何消除来电的反弹?

时间:2018-07-25 16:22:43

标签: angular typescript rxjs

我有一个页面,用户可以在其中输入值,然后执行搜索并将其返回给用户。

问题是,如果我键入的速度太快,它会打多个电话,有时会跳过我键入并在其之前使用该电话的最后一个字符。

我正在寻找一种抑制方法,并发现了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个网络呼叫。我想我应该只看一个?

enter image description here

0 个答案:

没有答案