如何在Java中对改装的反应式请求进行反抖动?

卢卡斯:

我正在研究一个Android项目,该项目可通过使用Rx-Java进行翻新来进行请求,并且可以进行订阅。

但是,在某些交互中,可以多次调用此请求,而我只想在预定义的时间范围内执行最后一个请求(反跳)。

我尝试将debounce运算符直接应用于可观察对象,但是由于每次发生某些交互时都会执行以下代码,因此它不起作用:

mApi.getOnlineUsers()
    .debounce(1, TimeUnit.SECONDS)
    .subscribe(...)

我猜应该只创建一个可观察的对象,并且每次交互都应将执行“附加”到相同的可观察对象。但是,我对Rx Java还是陌生的,不知道该怎么做。

谢谢!

ESala:

假设您要根据某个触发事件开始执行。

Observable<Event> trigger = ... // e.g. button clicks

您可以将触发事件转换为对API的调用,如下所示:

trigger
    .debounce(1, TimeUnit.SECONDS)
    .flatMap(event -> mApi.getOnlineUsers())
    .subscribe(users -> showThemSomewhere(users));

另外,请注意,debounce操作员将在时间范围内采取最后一次发生的措施,但throttlefirst将采取第一项发生根据您的用例,您可能要使用其中一个。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Spring Webflux-如何在WebFilter中调用反应式端点

如何在Spring反应式WebClient中返回Kotlin协程流

如何在R / Shiny中建立反应式数据框?

如何在反应式Android中打印控制台日志?

如何在反应式流中取消事件?

如何在Laravel中未经请求进行验证

如何在Vue.js中声明反应式属性

如何使用vuex进行反应式更新

如何在闪亮的反应式数据表中添加注释

异步流如何与反应式扩展进行比较?

如何在Vue 3的Composition API中的反应式嵌套对象上使用.value?

如何在Shiny中为反应式数据帧分配行名?

如何在Laravel 8中使用请求进行验证?

如何在Spring Boot RSocket反应式中处理入站流取消

如何在Play Framework(Java)v2.4.x中提供反应式ByteChunks

如何在Shiny中包含带有反应式MathJax元素的html代码?

如何在Codename One中模拟服务器/ http请求进行测试?

如何使用反应式android和改造进行多个请求

如何进行顺序和条件反应式编程?

如何在反应式编程中实现热流

如何在 Angular 中做恢复反应式语句?

Angular 反应式表单:如何在对话框中显示验证错误?

如何在 R Shiny 中更改反应式小标题中的值

如何在 URI 中对 $search 变量的 GET 请求进行编码?

如何在 r 闪亮中创建多个反应式?

如何在反应式 mongo 数据(java)中编写来自 mongoshell 的查询

如何在 quarkus 反应式响应过滤器中添加标头?

如何使用订阅方法在异步/反应式 webclient 请求中返回 Flux

反应式 Java 的困惑