angular - 如何使用新参数 retryWhen 函数?角 9
问题描述
授权错误时如何在请求中设置新参数
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))))
}
解决方案
尝试有两个功能并使用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}
})
}));
}
推荐阅读
- javascript - 错误:请求失败,javaScript 中的状态码为 422
- sql - 在 BigQuery 中,如何检查两个 ARRAY 的 STRUCT 是否相等
- cplex - 如何计算 OPL 元组中匹配条件的项目数
- draw.io - Draw.io - 如何使用命令行将所有选项卡导出到图像
- javascript - 将用户输入存储在本地存储中的特定数组中
- android - 使用 Firestore 中的 where 子句过滤并获取所有子集合
- javascript - 使用 Javascript 在 Datepicker 中禁用以前的日期
- c# - 上传大文件 Azure Blob .net SDK v12 问题
- html - 如何处理手机中的图像纵横比
- java - 提取 map(...) 调用中的代码