Angular 7 switchMap调用两次

时间:2019-05-24 17:13:20

标签: angular typescript switchmap

我一直试图让它只处理一个请求。

但是当函数调用服务时,它将触发两次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', []))
    );
}

谢谢 为了您的帮助

0 个答案:

没有答案