延遲一段指定的時間再發(fā)射來自O(shè)bservable的發(fā)射物
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/delay.c.png" alt="delay" />
Delay
操作符讓原始Observable在發(fā)射每項數(shù)據(jù)之前都暫停一段指定的時間段。效果是Observable發(fā)射的數(shù)據(jù)項在時間上向前整體平移了一個增量。
RxJava的實現(xiàn)是 delay
和delaySubscription
。
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/delay.png" alt="delay" />
第一種delay
接受一個定義時長的參數(shù)(包括數(shù)量和單位)。每當(dāng)原始Observable發(fā)射一項數(shù)據(jù),delay
就啟動一個定時器,當(dāng)定時器過了給定的時間段時,delay
返回的Observable發(fā)射相同的數(shù)據(jù)項。
注意:delay
不會平移onError
通知,它會立即將這個通知傳遞給訂閱者,同時丟棄任何待發(fā)射的onNext
通知。然而它會平移一個onCompleted
通知。
delay
默認在computation
調(diào)度器上執(zhí)行,你可以通過參數(shù)指定使用其它的調(diào)度器。
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/delay.o.png" alt="delay" />
另一種delay
不實用常數(shù)延時參數(shù),它使用一個函數(shù)針對原始Observable的每一項數(shù)據(jù)返回一個Observable,它監(jiān)視返回的這個Observable,當(dāng)任何那樣的Observable終止時,delay
返回的Observable就發(fā)射關(guān)聯(lián)的那項數(shù)據(jù)。
這種delay
默認不在任何特定的調(diào)度器上執(zhí)行。
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/delay.oo.png" alt="delay" />
這個版本的delay
對每一項數(shù)據(jù)使用一個Observable作為原始Observable的延時定時器。
這種delay
默認不在任何特定的調(diào)度器上執(zhí)行。
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/delaySubscription.png" alt="delay" />
還有一個操作符delaySubscription
讓你你可以延遲訂閱原始Observable。它結(jié)合搜一個定義延時的參數(shù)。
delaySubscription
默認在computation
調(diào)度器上執(zhí)行,你可以通過參數(shù)指定使用其它的調(diào)度器。
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/delaySubscription.o.png" alt="delay" />
還有一個版本的delaySubscription
使用一個Obseable而不是一個固定的時長來設(shè)置訂閱延時。
這種delaySubscription
默認不在任何特定的調(diào)度器上執(zhí)行。