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

相關文章
相關標籤/搜索