我正在尝试使用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个电话。
似乎您正在多次订阅。仅应订阅一次,它将给出适当的结果。