簡體   English   中英

收到RxJava Debounce方法調用

[英]RxJava Debounce method call received

我的意思是我想為方法調用做一個簡單的調整。 我有這種方法:

public void called(int number){
   doSomething(number);
}

這種方法被稱為過於頻繁,我想創建一個可觀察的基礎上收到的數量和debounce呼吁doSomething(number)

這可能嗎?

當然,像這樣-

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);
        }
    });
}

這可能對您有幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM