gpt4 book ai didi

javascript - Angular Http 拦截器 : catchError and return success

转载 作者:行者123 更新时间:2023-11-29 15:59:49 25 4
gpt4 key购买 nike

我有一个捕获错误的 Http 拦截器 (Angular 7)。是否有可能捕获错误并根据某些条件返回成功而不是错误?我当前的代码。

export class RequestInterceptor implements HttpInterceptor {

constructor() {}

intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {

return next.handle(request).pipe(
catchError( response => {
if(someCondition) {
//return something that won't throw an error
}
return of(response)
})
)

}
}

最佳答案

您需要返回一个 Observable<HttpEvent<any>>目的。您可以通过使用 next.handle(newReq) 发出另一个请求来实现。

比如你想在错误为401的情况下添加一个Bearer authorization header,你可以这样做

intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {

return next.handle(request).pipe(
catchError( response => {
if(response.status === 401) {
return next.handle(request.clone({
setHeaders: { "Authorization": `Bearer ${token}` }
}));
}
return throwError(() => new Error(response));
})
)
}

关于javascript - Angular Http 拦截器 : catchError and return success,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54574790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com