【发布时间】:2019-04-20 07:43:35
【问题描述】:
我需要创建一个 Angular 组件来允许用户选择带有类型建议的城市。
当用户输入三个或更多字符时,前端会向后端询问名称以用户输入开头的城市列表。
之后,我将城市列表的 Observable 传递给 mat-option 组件
searchCities = (value: string): Observable<City[]> => {
if(value.length >= this.minCityNameLength){
return this.detailsITService.fetchCitiesByName(value);
}
return of([]);
};
如果使用新的用户输入调用方法searchCities(作为输入参数传递给我的自定义组件),是否有办法“取消”请求?
【问题讨论】:
-
我不认为你可以取消请求,但你可以使用 buffer() 和 filter 来组合和减少调用开销。您可以缓冲以保持网络调用直到某个时间点,并过滤以确保输入得到验证
-
@Talha 是的,Angular 中的 HttpClient 实际上可以取消请求。
标签: typescript rxjs observable angular6