抛出或处理错误(catch)、重试(retry、retryWhen)spa
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'))
public retry(count: number): Observable
错误后重试 N (N = count)次对象
返回一个 Observable, 该 Observable 是源 Observable 不包含错误异常的镜像。 若是源 Observable 发生错误, 这个方法不会传播错误而是会不 断的从新订阅源 Observable 直到达到最大重试次数 (由数字参数指定)。io
public retryWhen(notifier: function(errors: Observable): Observable): Observable
返回一个 Observable, 该 Observable 是源 Observable 不包含错误异常的镜像。function
若是源头 Observable 触发 error, 这个方法会发出引发错误的 Throwable 给 notifier 返回的 Observable。 该方法会从新订阅源 Observable。若是该 Observable 触发 complete 或者 error 则该方法会订阅触发 complete 和 error。select