創(chuàng)建一個發(fā)射特定數(shù)據(jù)重復(fù)多次的Observable
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/repeat.c.png" alt="repeat" />
Repeat重復(fù)地發(fā)射數(shù)據(jù)。某些實現(xiàn)允許你重復(fù)的發(fā)射某個數(shù)據(jù)序列,還有一些允許你限制重復(fù)的次數(shù)。
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/repeat.o.png" alt="repeat" />
RxJava將這個操作符實現(xiàn)為repeat
方法。它不是創(chuàng)建一個Observable,而是重復(fù)發(fā)射原始Observable的數(shù)據(jù)序列,這個序列或者是無限的,或者通過repeat(n)
指定重復(fù)次數(shù)。
repeat
操作符默認(rèn)在trampoline
調(diào)度器上執(zhí)行。有一個變體可以通過可選參數(shù)指定Scheduler。
Javadoc: [repeat()](http://reactivex.io/RxJava/javadoc/rx/Observable.html#repeat()) Javadoc: repeat(long) Javadoc: repeat(Scheduler) Javadoc: repeat(long,Scheduler)
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/repeatWhen.f.png" alt="repeatWhen" />
還有一個叫做repeatWhen
的操作符,它不是緩存和重放原始Observable的數(shù)據(jù)序列,而是有條件的重新訂閱和發(fā)射原來的Observable。
將原始Observable的終止通知(完成或錯誤)當(dāng)做一個void
數(shù)據(jù)傳遞給一個通知處理器,它以此來決定是否要重新訂閱和發(fā)射原來的Observable。這個通知處理器就像一個Observable操作符,接受一個發(fā)射void
通知的Observable為輸入,返回一個發(fā)射void
數(shù)據(jù)(意思是,重新訂閱和發(fā)射原始Observable)或者直接終止(意思是,使用repeatWhen
終止發(fā)射數(shù)據(jù))的Observable。
repeatWhen
操作符默認(rèn)在trampoline
調(diào)度器上執(zhí)行。有一個變體可以通過可選參數(shù)指定Scheduler。
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/doWhile.png" alt="doWhile" />
doWhile
屬于可選包rxjava-computation-expressions
,不是RxJava標(biāo)準(zhǔn)操作符的一部分。doWhile
在原始序列的每次重復(fù)后檢查某個條件,如果滿足條件才重復(fù)發(fā)射。
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/whileDo.png" alt="whileDo" />
whileDo
屬于可選包rxjava-computation-expressions
,不是RxJava標(biāo)準(zhǔn)操作符的一部分。whileDo
在原始序列的每次重復(fù)前檢查某個條件,如果滿足條件才重復(fù)發(fā)射。