java实现debounce_Debounce

java实现debounce_Debounce##Debounce仅在过了一段指定的时间还没发射数据时才发射一个数据![debounce](https://box.kancloud.cn/401d51d142852785a558f9eb59212243_1508x584.png)`Debounce`操作符会过滤掉发射速率过快的数据项。RxJava将这个操作符实现为`throttleWithTimeout`和`debounce`。注意:这个操…

大家好,又见面了,我是你们的朋友全栈君。

## Debounce

仅在过了一段指定的时间还没发射数据时才发射一个数据

![debounce](https://box.kancloud.cn/401d51d142852785a558f9eb59212243_1508x584.png)

`Debounce`操作符会过滤掉发射速率过快的数据项。

RxJava将这个操作符实现为`throttleWithTimeout`和`debounce`。

注意:这个操作符会会接着最后一项数据发射原始Observable的`onCompleted`通知,即使这个通知发生在你指定的时间窗口内(从最后一项数据的发射算起)。也就是说,`onCompleted`通知不会触发限流。

### throttleWithTimeout

![debounce](https://box.kancloud.cn/4dbf80628e4f900cbc5ba998812948f7_1280x620.png)

`throtleWithTimeout/debounce`的一个变体根据你指定的时间间隔进行限流,时间单位通过`TimeUnit`参数指定。

这种操作符默认在`computation`调度器上执行,但是你可以通过第三个参数指定。

* Javadoc: [throttleWithTimeout(long,TimeUnit)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#throttleWithTimeout(long,%20java.util.concurrent.TimeUnit)) and [debounce(long,TimeUnit)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#debounce(long,%20java.util.concurrent.TimeUnit))

* Javadoc: [throttleWithTimeout(long,TimeUnit,Scheduler)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#throttleWithTimeout(long,%20java.util.concurrent.TimeUnit,%20rx.Scheduler)) and [debounce(long,TimeUnit,Scheduler)](http://reactivex.io/RxJava/javadoc/rx/Observable.html#debounce(long,%20java.util.concurrent.TimeUnit,%20rx.Scheduler))

### debounce

![debounce](https://box.kancloud.cn/c1929f6e9b7312b7d534ac278ea5f9f7_1280x850.png)

`debounce`操作符的一个变体通过对原始Observable的每一项应用一个函数进行限流,这个函数返回一个Observable。如果原始Observable在这个新生成的Observable终止之前发射了另一个数据,`debounce`会抑制(suppress)这个数据项。

`debounce`的这个变体默认不在任何特定的调度器上执行。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151544.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux 设置固定IP地址

    Linux 设置固定IP地址当我们安装完linux之后需要做的第一件事就是配置网络,因为有了网络我们可以做更多的事,比如下载插件,使用xshell工具连接等等ifconfig查看网络配置,类似windows的ipconfiglinux的网络配置文件一般在/etc/sysconfig/network-scripts/下面,使用命令cd切换到该路径下其中ifcfg-eth0就是虚拟机桥接的网络配置,如果有无…

    2022年5月2日
    67
  • JAVA数据库课程设计—简易网上银行管理系统-java图形用户界面

    JAVA数据库课程设计—简易网上银行管理系统-java图形用户界面@数据库课程设计—简易网上银行管理系统-java图形用户界面所使用数据库版本—mysql5.7所使用java编译器—idea2019效果实现图:登录界面功能界面:注册界面:管理员界面:数据库表设计:函数图:代码过多:如有需要在评论下留下qq,会加的!!!…

    2022年6月21日
    21
  • vue 使用数组splice方法失效,且总是删除最后一项的解决办法。[通俗易懂]

    vue 使用数组splice方法失效,且总是删除最后一项的解决办法。[通俗易懂]今天在写项目的时候,遇到一个很简单的需求,下图,点击添加标签,左边出现一个可以输入的标签,点击删除按钮,就能删除当前标签,很简单的需求,我却搞了一个多小时(哎…新手愚笨啊)一看到这个我的思路就是点击添加标签,把新增的节点push到自己定义的数组里,然后渲染出来,点击删除按钮,用splice方法从数组中删除掉当前的节点(很简单,很明确的思路嘛,但是却事与愿违) <div…

    2022年9月24日
    2
  • linux定时执行sql文件[通俗易懂]

    linux定时执行sql文件[通俗易懂]linux定时执行sql文件

    2022年4月24日
    98
  • 今儿下午疲惫极了_形容疲惫至极的诗句

    今儿下午疲惫极了_形容疲惫至极的诗句回家的公车上人也特别的多,春天来了,气温渐温,街上的颜色也丰富起来,我一路的走,一路的观望,看着一张张的笑脸,我也一路的想,想我爱的人和爱我的人,不觉得走神了。下车没两步,我摔了一交,结结实实的。手中的电脑包抛了老远,我一下子倒在了路边,脑子嗡响了一下,暂时的记忆就没了。大约有那么两三秒,也许是我摔倒的动静太大了,感觉周围的目光都在朝我这边看,一时间的尴尬,没顾得上身上的土,站起来就往住的方向猛走

    2022年9月18日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号