gpt4 book ai didi

java - 如何在 Java 中消除改造 react 请求?

转载 作者:搜寻专家 更新时间:2023-10-30 21:29:47 25 4
gpt4 key购买 nike

我正在开发一个 android 项目,该项目通过使用 Rx-Java 可观察和订阅的改造来发出请求。

但是,在某些交互中,可以多次调用此请求,我只想在预定义的时间窗口(去抖动)中执行最后一个请求。

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

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

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

谢谢!

最佳答案

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

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

您可以像这样将触发事件转换为对您的 API 的调用:

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

另外,请注意 debounce 运算符将在时间范围内取最后 出现,但 throttlefirst 将取第一个 。根据您的用例,您可能希望使用其中一种。

关于java - 如何在 Java 中消除改造 react 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33269954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com