定期發(fā)射Observable最近發(fā)射的數(shù)據(jù)項
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/sample.c.png" alt="sample" />
Sample操作符定時查看一個Observable,然后發(fā)射自上次采樣以來它最近發(fā)射的數(shù)據(jù)。
在某些實現(xiàn)中,有一個ThrottleFirst操作符的功能類似,但不是發(fā)射采樣期間的最近的數(shù)據(jù),而是發(fā)射在那段時間內(nèi)的第一項數(shù)據(jù)。
RxJava將這個操作符實現(xiàn)為sample和throttleLast。
注意:如果自上次采樣以來,原始Observable沒有發(fā)射任何數(shù)據(jù),這個操作返回的Observable在那段時間內(nèi)也不會發(fā)射任何數(shù)據(jù)。
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/sample.png" alt="sample" />
sample(別名throttleLast)的一個變體按照你參數(shù)中指定的時間間隔定時采樣(TimeUnit指定時間單位)。
sample的這個變體默認在computation調(diào)度器上執(zhí)行,但是你可以使用第三個參數(shù)指定其它的調(diào)度器。
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/sample.o.png" alt="sample" />
sample的這個變體每當?shù)诙€Observable發(fā)射一個數(shù)據(jù)(或者當它終止)時就對原始Observable進行采樣。第二個Observable通過參數(shù)傳遞給sample。
sample的這個變體默認不在任何特定的調(diào)度器上執(zhí)行。
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/throttleFirst.png" alt="throttleFirst" />
throttleFirst與throttleLast/sample不同,在每個采樣周期內(nèi),它總是發(fā)射原始Observable的第一項數(shù)據(jù),而不是最近的一項。
throttleFirst操作符默認在computation調(diào)度器上執(zhí)行,但是你可以使用第三個參數(shù)指定其它的調(diào)度器。