我一直试图让它只处理一个请求。
但是当函数调用服务时,它将触发两次get请求。
如果我删除switchMap,它将触发一次。
http请求被触发两次,应该只触发一次。
感谢您的帮助!
loadReports(val: {}) {
const modelCode = val['modelCode'];
this._reportService.getReportTypes(modelCode).pipe(
debounceTime(200),
distinctUntilChanged(),
switchMap(() => this._reportService.getReportTypes(modelCode)),
share(),
).subscribe(
(data) => {
console.log(data);
},
(error) => {
...
},
() => {
...
}
);
}
这是服务
getReportTypes(modelCode: string): Observable<any> {
...
return this._http.get(apiUrl, httpOptions).pipe(
tap( _ => console.log('fetched product types')),
map((resp: Response) => {
// return data;
return resp.body['data'].map((item: any[]) => this._adapter.adapt(item));
}),
catchError(this.handleError<any>('getReportTypes Error', []))
);
}
谢谢 为了您的帮助