Error Handling Operators
這兒有不同種類的錯誤操作符,你可以用來對來自Obseravble的錯誤通知做出反應或者恢復。例如,你可以:
吞下這個錯誤且轉換到備用的Obseravble去繼續這個序列
吞下這個錯誤且發射一個默認的item
吞下這個錯誤且立即嘗試重啟錯誤的Obseravble
吞下這個錯誤且嘗試重啟錯誤的Obseravble在一些回退間隔之后
下面解釋這些操作符。
- onErrorResumeNext(?)— 指示一個Obseravble發射一系列的item 如果它遇到了一個錯誤
- onErrorReturn(?)— 指示一個Obseravble發射一個特殊的item當它遇到一個錯誤。
- onExceptionResumeNext(?)— 指示一個Obseravble繼續發射item在它遇到一個異常后(但不是另一種的異常)
- retry(?)— 如果一個源Obseravble發射一個錯誤,重新訂閱它希望它將不出錯的完成。
- retryWhen(?)— 如果一個源Obseravble發射一個錯誤,把這個錯誤傳給另一個Obseravble去判定是否重新訂閱該Obseravble。
Filtering Observables
下面展示一些你可以過濾和選擇被Obseravble發射的item的操作符。
- filter(?)— 過濾杯一個Obsreavble發射的item
- takeLast(?)— 僅僅發射被Observable最后發射的n個item
- last(?)— 僅僅發射被Observable最后發射的一個item
- lastOrDefault(?) —僅僅發射被Observable最后發射的一個item或者默認值如果源Observable是空的。
- takeLastBuffer(?) —僅僅發射被Observable最后發射的n個item以一個單一的list item
- skip(?)— 忽略前n個被Observable發射的item
- skipLast(?)— 忽略后n個被Observable發射的item
- take(?)— 僅僅發射前n個被Observable發射的item
- first(?)**** and ****takeFirst(?)— 僅僅發射第一個被Observable發射的item或者第一個滿足某些條件的item
- firstOrDefault(?)— 僅僅發射第一個被Observable發射的item或者第一個滿足某些條件的item,或者一個默認的值如果源Obseravble是空的。
- elementAt(?)— 發射第n個被Observable發射的item
- elementAtOrDefault(?) —發射第n個被Observable發射的item或者默認的item如果源Obseravble發射的少于n個item
- sample(?)**** or ****throttleLast(?)— 發射最近被Observable發射的item在周期時間內。
- throttleFirst(?)— 發射第一個被Obseravble發射的item 在周期時間內
- throttleWithTimeout(?)**** or ****debounce(?)— 僅從源Observable發射一個個item在過去了一段特殊的時間,這段時間Observable沒有發射任何其他item.
- timeout(?)— 從源Observable發射item,但是發出一個異常如果沒有Item被發射在一段特殊時間段內。
- distinct(?)— 去掉重復的被源Obseravble發射的item。
- distinctUntilChanged(?)— 去掉連續重復的被源Obseravble發射的item
- ofType(?)— 僅從特定類型的源Obseravble發射這些item
- ignoreElements(?)— 拋棄被源Obseravble發射的item且僅通過錯誤和完成的通知。