【问题标题】:RxJS cacheError((error:any) cannot accept any object type as parameterRxJS cacheError((error:any) 不能接受任何对象类型作为参数
【发布时间】:2021-10-20 11:30:42
【问题描述】:

我使用 RxJS 如下:

  catchError((error: any) => {
    if (error instanceof HttpErrorResponse) {
      .......
      if (error.status === 401) {
          .....
          return;
        }}

但是 cacheError((error:any) 用法给出以下错误:

(error: any) => Observable<never> | undefined 类型的参数不可分配给(err: any, caught: Observable<HttpEvent<any>>) => ObservableInput<never> 类型的参数。 类型 Observable<never> | undefined 不可分配给类型 ObservableInput<never>。 类型 undefined 不可分配给类型 ObservableInput<never>

我该如何解决?我使用的是 rxjs 6.6.3 版本

【问题讨论】:

    标签: angular typescript rxjs


    【解决方案1】:

    根据RxJS docs / learn

    记得从 catchError 函数返回一个 observable!

    所以为了摆脱错误,你可以返回空的 observable of():

    catchError((error: any) => {
        if (error instanceof HttpErrorResponse) {
          .......
          if (error.status === 401) {
              .....
              return of();
            }}
    

    【讨论】:

      猜你喜欢
      • 2021-10-18
      • 2012-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多