[英]RxJava Debounce method call received
I want to do a simple throttle for a method call, I mean. 我的意思是我想为方法调用做一个简单的调整。 I have this method:
我有这种方法:
public void called(int number){
doSomething(number);
}
This method is called too often, I want to create a observable based on that number received and to debounce
the call for doSomething(number)
. 这种方法被称为过于频繁,我想创建一个可观察的基础上收到的数量和
debounce
呼吁doSomething(number)
。
Is this possible? 这可能吗?
Sure, like this - 当然,像这样-
PublishSubject<Integer> subject = PublishSubject.create();
subject
.debounce(1, TimeUnit.SECONDS)
.subscribe(new Action1<Integer>() {
public void call(Integer number) {
doSomething(number);
}
});
public void called(int number){
subject.onNext(number);
}
private void doSomeWork() {
getObservable().debounce(500, TimeUnit.MILLISECONDS)
// Run on a background thread
.subscribeOn(Schedulers.io())
// Be notified on the main thread
.observeOn(AndroidSchedulers.mainThread())
.subscribe(getObserver());
}
private Observable<Integer> getObservable() {
return Observable.create(new ObservableOnSubscribe<Integer>() {
@Override
public void subscribe(ObservableEmitter<Integer> emitter) throws Exception {
doSomething(number);
}
});
}
This might help you 这可能对您有帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.