【问题标题】:How do you handle recovery in the Angular Interceptor您如何处理 Angular 拦截器中的恢复
【发布时间】:2020-01-27 23:53:02
【问题描述】:

如何在 Angular 中恢复截获的 HTTP 请求?

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

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

目标是捕获错误,处理它并向原始订阅者返回可观察到的“成功”。我无法让它与 Angular 的拦截器一起使用。

这是简化的代码,但如果我返回一个 observable,它不会影响原始订阅者的成功。然而,它将完成它。 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');
    })
  );

}

【问题讨论】:

  • 该链接是预期的行为。问题是为什么它不能像 angular 的拦截器那样工作?
  • 请提供您的问题的工作示例。你在这里的东西是正确的,但你只是说它不起作用。
  • 如果你返回一个可观察的字符串,它将不起作用

标签: angular rxjs observable interceptor


【解决方案1】:

拦截器需要返回一个Observable&lt;HttpEvent&lt;any&gt;&gt;

尝试:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-05
    • 2018-11-04
    • 2016-09-20
    • 2020-09-07
    • 1970-01-01
    • 2016-08-30
    • 2020-01-05
    相关资源
    最近更新 更多