rx.Observable.throttleWithTimeout()方法的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(2.3k)|赞(0)|评价(0)|浏览(211)

本文整理了Java中rx.Observable.throttleWithTimeout()方法的一些代码示例,展示了Observable.throttleWithTimeout()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Observable.throttleWithTimeout()方法的具体详情如下:
包路径:rx.Observable
类名称:Observable
方法名:throttleWithTimeout

Observable.throttleWithTimeout介绍

[英]Returns an Observable that only emits those items emitted by the source Observable that are not followed by another emitted item within a specified time window.

Note: If the source Observable keeps emitting items more frequently than the length of the time window then no items will be emitted by the resulting Observable.

Information on debounce vs throttle:

代码示例

代码示例来源:origin: henrymorgen/android-advanced-light

  1. private void throttleWithTimeOut() {
  2. Observable.create(new Observable.OnSubscribe<Integer>() {
  3. @Override
  4. public void call(Subscriber<? super Integer> subscriber) {
  5. for (int i = 0; i < 10; i++) {
  6. subscriber.onNext(i);
  7. int sleep = 100;
  8. if (i % 3 == 0) {
  9. sleep = 300;
  10. }
  11. try {
  12. Thread.sleep(sleep);
  13. } catch (InterruptedException e) {
  14. e.printStackTrace();
  15. }
  16. }
  17. subscriber.onCompleted();
  18. }
  19. }).throttleWithTimeout(200,TimeUnit.MILLISECONDS).subscribe(new Action1<Integer>() {
  20. @Override
  21. public void call(Integer integer) {
  22. Log.d(TAG, "throttleWithTimeOut:"+integer);
  23. }
  24. });
  25. }

代码示例来源:origin: leeowenowen/rxjava-examples

  1. @Override
  2. public void run() {
  3. Observable.create(new Observable.OnSubscribe<Integer>() {
  4. @Override
  5. public void call(Subscriber<? super Integer> subscriber) {
  6. for (int i = 0; i < 10; i++) {
  7. subscriber.onNext(i);
  8. sleep(500);
  9. }
  10. subscriber.onCompleted();
  11. }
  12. })
  13. .subscribeOn(Schedulers.newThread())
  14. .throttleWithTimeout(2, TimeUnit.SECONDS)
  15. .observeOn(Schedulers.newThread())
  16. .subscribe(new Action1<Integer>() {
  17. @Override
  18. public void call(Integer integer) {
  19. log(integer);
  20. }
  21. });
  22. }
  23. });

相关文章

Observable类方法