首页 > 解决方案 > 任何想法为什么我的 RxJS api 调用捕获每个击键而不是等待?

问题描述

我正在尝试使用 Angular 7.3.1 和 RxJS 6.4 对 RxJS 进行前瞻。当我键入时,每次击键都会被发送,而不是等待一段时间来捕获所有击键。

我的.service.ts

return fromEvent(document.getElementById('input-size-default'), 'input')
            .pipe(
                debounceTime(500),
                map((e: any) => e.target.value),
                filter(earlyText => earlyText.length > 3),
                distinctUntilChanged(),
                switchMap((myText) => ajax.post(this.base_href + ':3000/searchUsers', {user: myText}))
            );

组件.ts

 this.ad.searchCiscoUser()
        .subscribe(response => this.showResults({'results': response}), error => this.showResults({'error': error}));

对于我的搜索,我输入了我的部分姓名,您可以在下面看到 9 个本应只发生一次的电话。

结果: 在此处输入图像描述

标签: angularrxjsangular7rxjs6

解决方案


看来您订阅了多次。它应该只订阅一次,它会给出适当的结果。


推荐阅读