僅在過(guò)了一段指定的時(shí)間還沒(méi)發(fā)射數(shù)據(jù)時(shí)才發(fā)射一個(gè)數(shù)據(jù)
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/debounce.c.png" alt="debounce" />
Debounce操作符會(huì)過(guò)濾掉發(fā)射速率過(guò)快的數(shù)據(jù)項(xiàng)。
RxJava將這個(gè)操作符實(shí)現(xiàn)為throttleWithTimeout和debounce。
注意:這個(gè)操作符會(huì)會(huì)接著最后一項(xiàng)數(shù)據(jù)發(fā)射原始Observable的onCompleted通知,即使這個(gè)通知發(fā)生在你指定的時(shí)間窗口內(nèi)(從最后一項(xiàng)數(shù)據(jù)的發(fā)射算起)。也就是說(shuō),onCompleted通知不會(huì)觸發(fā)限流。
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/debounce.png" alt="debounce" />
throtleWithTimeout/debounce的一個(gè)變體根據(jù)你指定的時(shí)間間隔進(jìn)行限流,時(shí)間單位通過(guò)TimeUnit參數(shù)指定。
這種操作符默認(rèn)在computation調(diào)度器上執(zhí)行,但是你可以通過(guò)第三個(gè)參數(shù)指定。
http://wiki.jikexueyuan.com/project/rx-docs/images/operators/debounce.f.png" alt="debounce" />
debounce操作符的一個(gè)變體通過(guò)對(duì)原始Observable的每一項(xiàng)應(yīng)用一個(gè)函數(shù)進(jìn)行限流,這個(gè)函數(shù)返回一個(gè)Observable。如果原始Observable在這個(gè)新生成的Observable終止之前發(fā)射了另一個(gè)數(shù)據(jù),debounce會(huì)抑制(suppress)這個(gè)數(shù)據(jù)項(xiàng)。
debounce的這個(gè)變體默認(rèn)不在任何特定的調(diào)度器上執(zhí)行。