【问题标题】:How can I retryWhen function with new params? Angular 9如何使用新参数 retryWhen 函数?角 9
【发布时间】:2021-02-08 12:14:26
【问题描述】:

授权错误时如何在请求中设置新参数

myFunc(param): Observable<Visit[]> {
   
    return this.http.get(this.url?session='+param
      ).pipe(map(data => {
            let visitsList = data['visits_grid']
            return visitsList.map(function(visit:any) {
                return {name: visit.client_facility, date: visit.date_start, hash: visit.hash}
        })
    }),
    retryWhen(error => error.pipe(delay(500), take(3))))
}

【问题讨论】:

    标签: angular ionic-framework rxjs


    【解决方案1】:

    尝试拥有两个函数并使用switchMap

    import { switchMap } from 'rxjs/operators';
    ....
    myFunc(param): Observable<Visit[]> {
      return this.makeApiCall().pipe(
        retryWhen(error => error.pipe(
                                       delay(500), 
                                       take(3), 
                                       switchMap(_ => this.makeApiCall({}))), // new param 
      );
    }
    private makeApiCall(param) {
       return this.http.get(this.url?session='+param
          ).pipe(map(data => {
                let visitsList = data['visits_grid']
                return visitsList.map(function(visit:any) {
                    return {name: visit.client_facility, date: visit.date_start, hash: visit.hash}
            })
        }));
    }
    

    【讨论】:

      猜你喜欢
      • 2021-02-21
      • 2018-06-13
      • 2017-03-04
      • 2018-10-10
      • 2011-06-16
      • 1970-01-01
      • 2019-03-02
      • 2020-08-30
      • 2016-03-12
      相关资源
      最近更新 更多