Rxjs--错误处理操做符

抛出或处理错误(catch)、重试(retry、retryWhen)spa

catch

public catch(selector: function): Observable

捕获 observable 中的错误, 能够经过返回一个新的 observable 或者抛出错误对象来处理code

当源 Observable 发生错误的时候,抛出一个新的错误
  .catch(err => {
    throw 'error in source. Details: ' + err;
  })

  当发生错误的时候重试源 Observable, 和retry()操做符相似
  .catch((err, caught) => caught)

  当发生错误的时候经过返回一个新的 Observable 继续运行
  .catch(err => Observable.of('I', 'II', 'III', 'IV', 'V'))

retry

public retry(count: number): Observable

错误后重试 N (N = count)次对象

返回一个 Observable, 该 Observable 是源 Observable 不包含错误异常的镜像。 若是源 Observable 发生错误, 这个方法不会传播错误而是会不 断的从新订阅源 Observable 直到达到最大重试次数 (由数字参数指定)。io

retryWhen

public retryWhen(notifier: function(errors: Observable): Observable): Observable

返回一个 Observable, 该 Observable 是源 Observable 不包含错误异常的镜像。function

若是源头 Observable 触发 error, 这个方法会发出引发错误的 Throwable 给 notifier 返回的 Observable。 该方法会从新订阅源 Observable。若是该 Observable 触发 complete 或者 error 则该方法会订阅触发 complete 和 error。select

相关文章
相关标签/搜索