Я бы использовал тему, чтобы все реагировало.в вашем шаблоне html слушайте изменения событий и отправляйте новое значение субъекту.
<searchBar (change)="search$.next($event.target.value)" />
затем в вашем компоненте:
this.subscription = this.search$.pipe(
debounceTime(800),
distinctUntilChanged(),
switchMap(searchText=>http.post('api_link', {searchText})
}).subscribe(response=>{
this.response = response.
});
switchMap отменит любой запрос HTML, который не 't завершено, если через субъект выдается новое значение.Вы можете поиграть с debouneTime, чтобы увидеть, что вам подходит.И наконец, убедитесь, что вы отменили подписку на свою тему в ngOnDestroy, это предотвратит любые ссылки на память и сохранит все в порядке и правильности:является отличным дополнением к решению.Я добавляю это, но хочу отдать должное его ответу ниже.Это преимущество, потому что, если я ищу egg
, запрос выполняется.но затем я добавляю s
конец яйца и передумал до того, как завершится отмена, еще один повторяющийся HTTP-пост с поиском яйца не будет сделан.