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