【发布时间】:2020-02-28 02:53:13
【问题描述】:
在 angular(不是 angularjs)中取消对服务器的过时请求的最佳模式是什么?
- 用户发起搜索请求 #1
- 用户发起搜索请求#2
- 服务器返回搜索响应 #2
- 服务器返回搜索响应 #1
因此,我们遇到了 UI 中的请求和响应不匹配的错误。
例如,Typeahead 具有 typeahead-wait-ms 属性,该属性在一定程度上有所帮助,但我正在寻找更通用的解决方案。
是否有简单的模式来取消请求?或者将请求 ID 与最新的比较?
PS:我们使用的是 HttpClient,因此我们的调用内部看起来类似于以下 GET 实现:
protected get<T>(url: string, request: any = {}, options: any = {}): Observable<T> {
request.rnd = (new Date()).getTime();
return this.http.get<T>(url, {headers: this.buildHeaders(options),
responseType: 'json', params: request})
.pipe(
catchError((err: HttpErrorResponse) => {
... error Handlig
})
);
}
【问题讨论】:
标签: angular angular-httpclient angular-http-interceptors