Rxjs--错误处理操作符

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

catch

public catch(selector: function): Observable

捕获 observable 中的错误, 可以通过返回一个新的 observable 或者抛出错误对象来处理

  当源 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'))

catch.png

retry

public retry(count: number): Observable

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

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

retry.png

retryWhen

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

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

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

retryWhen.png

 

 

 

 

转载于:https://my.oschina.net/u/3412211/blog/1606712

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值