任何想法,为什么我的RxJS api调用都会捕获每个击键而不是等待?

问题描述 投票:2回答:1

我正在尝试使用Angular 7.3.1和RxJS 6.4对RxJS进行前瞻性。当我键入内容时,将发送每个击键,而不是等待一段时间以捕获所有击键。

my.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}))
            );

component.ts

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

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

结果:enter image description here

angular rxjs angular7 rxjs6
1个回答
0
投票

似乎您正在多次订阅。仅应订阅一次,它将给出适当的结果。

© www.soinside.com 2019 - 2024. All rights reserved.