【发布时间】:2020-12-14 16:48:20
【问题描述】:
我正在调用需要在服务器上进行身份验证的端点。
/users/:userId/my/endpoint => getData(): Observable<any>
如果身份验证过期,服务器将返回错误消息。然后我可以使用我通过 POST 发送的客户端密码刷新此身份验证
/refresh/me => refreshAuth(): Observable<any>
之后,我将再次发送第一个请求并获得成功的响应(快乐的情况)。
我怎样才能用一个 Observable 实现这一点?我知道,例如catchError 和retry。
getData()
.pipe(
catchError(e => {
if (error.code === 1224) {
return refreshAuth();
}
return throwError(error);
}),
retry(1)
).subscribe();
但这会重试每个错误情况,对吗?如何在特定的身份验证过期案例上重试整个链?
【问题讨论】:
-
查看
retryWhen这样您就可以检查错误,并且仅在满足您的条件时才发出重试
标签: rxjs