你如何处理 Angular 拦截器中的恢复

How do you handle recovery in the Angular Interceptor

如何在 angular 中恢复被拦截的 HTTP 请求?

这是使用 Observables 捕获和替换策略的示例

https://blog.angular-university.io/rxjs-error-handling/

目标是捕获错误、处理错误并 return 原始订阅者可以观察到 "success"。我无法让它与 Angular 的拦截器一起使用。

这是简化的代码,但如果我 return 一个可观察的,它不会影响原始订阅者的成功。然而,它将达到它的完整。并且 throwError 按预期工作。

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

return next
  .handle(req)
  .pipe(
    catchError((error, caught) => {
       return of('this does not work');
       //throwError('this works as expected');
    })
  );

}

拦截器需要return一个Observable<HttpEvent<any>>

尝试:

 return of(new HttpResponse({ body: {} }));