java实现debounce_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`的这个变体默认不在任何特定的调度器上执行。
java实现debounce_Debounce相关推荐
- springboot实现SSE服务端主动向客户端推送数据,java服务端向客户端推送数据,kotlin模拟客户端向服务端推送数据
SSE服务端推送 服务器向浏览器推送信息,除了 WebSocket,还有一种方法:Server-Sent Events(以下简称 SSE).本文介绍它的用法. 在很多业务场景中,会涉及到服务端向客户端 ...
- Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几
Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几 //获得入参的日期 Calendar cd = Calendar.getInstance(); cd.setTime(date ...
- 在k8s中使用gradle构建java web项目镜像Dockerfile
在k8s中使用gradle构建java web项目镜像Dockerfile FROM gradle:6-jdk8 AS build COPY --chown=gradle:gradle . /home ...
- Java | kotlin 手动注入bean,解决lateinit property loginService has not been initialized异常
kotlin.UninitializedPropertyAccessException: lateinit property loginService has not been initialized ...
- SpringBoot项目使用nacos,kotlin使用nacos,java项目使用nacos,gradle项目使用nacos,maven项目使用nacos
SpringBoot项目使用nacos kotlin demo见Gitte 一.引入依赖 提示:这里推荐使用2.2.3版本,springboot与nacos的依赖需要版本相同,否则会报错. maven ...
- OpenAPI使用(swagger3),Kotlin使用swagger3,Java使用swagger3,gradle、Maven使用swagger3
OpenAPI使用(swagger3) demo见Gitte 一.背景及名词解释 OpenAPI是规范的正式名称.规范的开发工作于2015年启动,当时SmartBear(负责Swagger工具开发的公 ...
- Gradle错误提示:Java home supplied via ‘xxx.xxx.xxx‘ is invalid
Gradle错误提示:Java home supplied via 'org.gradle.java.home' is invalid 描述:在使用idea采用gradle进行依赖的管理功能,当想切换 ...
- 查看Hotspot源码,查看java各个版本源码的网站,如何查看jdk源码
java开发必知必会之看源码,而看源码的第一步则是找到源码
- java基本类型转换,随记
java基本类型转换: double double 转 long double random = Math.round(Math.random()*10000); long l = new Doubl ...
最新文章
- 200字带你看完一本书,GPT-3已经会给长篇小说写摘要了
- 【C++】 66_C++ 中的类型识别
- MySQL函数和操作符(超详细,备着查找)
- MTM:matlab实现2参数解析
- java中Scanner类中 next()与nextLine()的区别
- 一款开源免费且快速,高效和安全的跨平台备份程序:Restic使用教程
- 【报告分享】2020程序员人群洞察报告.pdf(附下载链接)
- 亚马逊CEO贝索斯将飞往太空;字节跳动获得“字节汽车”商标;谷歌被法国反垄断机构罚款 2.2 亿欧元|极客头条...
- Linux 下 Git 的源码安装
- Java面试官在面试时喜欢问哪些问题?
- H264/AVC-基本概念和码流结构
- autojs图片加水印
- 两路VL53L0X激光测距传感器的使用
- 李沐动手学深度学习V2-RNN循环神经网络从零实现
- 债务人无力偿还,债权人可否直接起诉“次债务人”
- html5+css3笔记整理
- 英语手记——持续更新
- WMS 系统出入库理解
- javaweb基于JSP+Servlet开发水费管理系统+论文 大作业 毕业设计
- MySQL必知必会二:MySQL简介