【问题标题】:Error: Cannot read properties of undefined (reading 'pipe') Angular12错误:无法读取未定义的属性(读取“管道”)Angular12
【发布时间】:2022-01-01 15:41:37
【问题描述】:

我在发送 ajax 请求时遇到错误,

ERROR TypeError: Cannot read properties of undefined (reading 'pipe')

ajax-loader.interceptor.ts 类

 export class AjaxLoaderInterceptor implements HttpInterceptor {
 private loaderProp = 'ajax_loader';
 constructor(private activeAjaxLoadersService: ActiveAjaxLoadersService) {}

 intercept(
   request: HttpRequest<any>,
   httpHandler: HttpHandler
 ): Observable<HttpEvent<any>> {
   console.log('ajax loader', request);
   const loaderName = request.headers.has(this.loaderProp)
     ? request.headers.get(this.loaderProp)
     : null;
   console.log('loaderName', loaderName);
   const updatedHeaders = request.headers.has(this.loaderProp)
     ? request.headers.delete(this.loaderProp)
     : request.headers;
   const updatedRequest = request.clone({ headers: updatedHeaders });
   console.log('updatedHeaders', updatedHeaders, updatedRequest);
   this.updateLoaderState(loaderName, XHR_REQUEST_STATES.PROGRESS);

   return httpHandler.handle(updatedRequest).pipe(
     tap((event: HttpEvent<any>) => {
       console.log('httpHandler', event);
       if (event instanceof HttpResponse) {
         this.updateLoaderState(loaderName, 'success', event);
       }
     }),
     (responseError: any): any => {
       if (responseError instanceof HttpErrorResponse) {
       }
     }
   );
 }

Providers code:

providers: [
    {
      provide: HTTP_INTERCEPTORS,
      useClass: AjaxLoaderInterceptor ,
      multi: true
    }
  ]

同样的代码在 Angular 8 中工作,但升级到 v12 后它坏了。

我在 stackblitz 中创建了可重现的代码示例,请在此处找到它Example

任何帮助将不胜感激。 谢谢!

【问题讨论】:

标签: javascript angular rxjs6


【解决方案1】:

在您的 ajax-loader.interceptor.ts 文件中,在 if 条件之后添加 return 语句,如下所示

   if (responseError instanceof HttpErrorResponse) {
       }

    return responseError;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-06
    • 2022-01-06
    • 2021-11-15
    相关资源
    最近更新 更多