## Repeat
創建一個發射特定數據重復多次的Observable

Repeat重復地發射數據。某些實現允許你重復的發射某個數據序列,還有一些允許你限制重復的次數。

RxJava將這個操作符實現為`repeat`方法。它不是創建一個Observable,而是重復發射原始Observable的數據序列,這個序列或者是無限的,或者通過`repeat(n)`指定重復次數。
`repeat`操作符默認在`trampoline`調度器上執行。有一個變體可以通過可選參數指定Scheduler。
Javadoc: [repeat()](http://reactivex.io/RxJava/javadoc/rx/Observable.html#repeat())
Javadoc: [repeat(long)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#repeat(long))
Javadoc: [repeat(Scheduler)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#repeat(rx.Scheduler))
Javadoc: [repeat(long,Scheduler)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#repeat(long,%20rx.Scheduler))
### repeatWhen

還有一個叫做`repeatWhen`的操作符,它不是緩存和重放原始Observable的數據序列,而是有條件的重新訂閱和發射原來的Observable。
將原始Observable的終止通知(完成或錯誤)當做一個`void`數據傳遞給一個通知處理器,它以此來決定是否要重新訂閱和發射原來的Observable。這個通知處理器就像一個Observable操作符,接受一個發射`void`通知的Observable為輸入,返回一個發射`void`數據(意思是,重新訂閱和發射原始Observable)或者直接終止(意思是,使用`repeatWhen`終止發射數據)的Observable。
`repeatWhen`操作符默認在`trampoline`調度器上執行。有一個變體可以通過可選參數指定Scheduler。
* Javadoc: [repeatWhen(Func1)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#repeatWhen(rx.functions.Func1))
* Javadoc: [repeatWhen(Func1,Scheduler)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#repeatWhen(rx.functions.Func1,%20rx.Scheduler))
### doWhile

`doWhile` 屬于可選包`rxjava-computation-expressions`,不是RxJava標準操作符的一部分。`doWhile`在原始序列的每次重復后檢查某個條件,如果滿足條件才重復發射。
### whileDo

`whileDo` 屬于可選包`rxjava-computation-expressions`,不是RxJava標準操作符的一部分。`whileDo`在原始序列的每次重復前檢查某個條件,如果滿足條件才重復發射。
- ReactiveX
- Observables
- Single
- Subject
- Scheduler
- Operators
- 創建操作
- Create
- Defer
- Empty/Never/Throw
- From
- Interval
- Just
- Range
- Repeat
- Start
- Timer
- 變換操作
- Buffer
- FlatMap
- GroupBy
- Map
- Scan
- Window
- 過濾操作
- Debounce
- Distinct
- ElementAt
- Filter
- First
- IgnoreElements
- Last
- Sample
- Skip
- SkipLast
- Take
- TakeLast
- 結合操作
- And/Then/When
- CombineLatest
- Join
- Merge
- StartWith
- Switch
- Zip
- 錯誤處理
- Catch
- Retry
- 輔助操作
- Delay
- Do
- Materialize/Dematerialize
- ObserveOn
- Serialize
- Subscribe
- SubscribeOn
- TimeInterval
- Timeout
- Timestamp
- Using
- To
- 條件和布爾操作
- All/Contains/Amb
- DefaultIfEmpty
- SequenceEqual
- SkipUntil/SkipWhile
- TakeUntil/TakeWhile
- 算術和聚合操作
- Average/Concat/Reduce
- Max/Min/Count/Sum
- 異步操作
- 連接操作
- Connect
- Publish
- RefCount
- Replay
- 轉換操作
- 阻塞操作
- 字符串操作
- 按字母順序的操作符列表
- RxJava文檔和教程
- RxJava入門指南
- RxJava使用示例
- 實現自定義操作符
- 自定義插件
- Backpressure
- 錯誤處理
- Android模塊
- 參與開發
- 補充閱讀材料