rxjava debounce
时间: 2023-02-11 08:48:14 浏览: 120
rxJava
RxJava 的 debounce 操作符会过滤掉在一段时间间隔之内发射的所有数据项。 具体来说,如果在这段时间内有多个数据项发射,那么 debounce 操作符将只发射最后一个数据项。
语法:
```
source.debounce(time, TimeUnit.MILLISECONDS);
```
使用示例:
```
Observable.create((ObservableOnSubscribe<Integer>) emitter -> {
for (int i = 0; i < 10; i++) {
emitter.onNext(i);
Thread.sleep(i * 100);
}
emitter.onComplete();
}).debounce(500, TimeUnit.MILLISECONDS)
.subscribe(new Observer<Integer>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(Integer integer) {
Log.e("onNext", "onNext:" + integer);
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
```
结果: 只发射最后一个数据项
```
onNext:5
onNext:6
onNext:7
onNext:8
onNext:9
```
阅读全文