如何在java中消除改装响应请求的影响?
我正在从事一个android项目,该项目通过使用RxJava可观察和订阅进行改造来发出请求 然而,在一些交互中,这个请求可以被多次调用,我只希望在预定义的时间窗口(debounce)中执行最后一个请求 我试图将如何在java中消除改装响应请求的影响?,java,android,rx-java,Java,Android,Rx Java,我正在从事一个android项目,该项目通过使用RxJava可观察和订阅进行改造来发出请求 然而,在一些交互中,这个请求可以被多次调用,我只希望在预定义的时间窗口(debounce)中执行最后一个请求 我试图将debounce操作符直接应用于可观察对象,但它不起作用,因为每次发生交互时都会执行下面的代码: mApi.getOnlineUsers() .debounce(1, TimeUnit.SECONDS) .subscribe(...) 我猜它应该只创建一个可观察对象,并且
debounce
操作符直接应用于可观察对象,但它不起作用,因为每次发生交互时都会执行下面的代码:
mApi.getOnlineUsers()
.debounce(1, TimeUnit.SECONDS)
.subscribe(...)
我猜它应该只创建一个可观察对象,并且它应该将执行“附加”到同一个可观察对象。但我对RXJava有点陌生,不知道该怎么做
谢谢 假设您希望根据某个触发事件开始执行
Observable<Event> trigger = ... // e.g. button clicks
另外,请注意,
debounce
操作符将采用时间范围内最后一次出现的,但throttlefirst
将采用第一次出现的。您可能希望根据您的用例使用一个或另一个。好点,您不妨考虑使用。
trigger
.debounce(1, TimeUnit.SECONDS)
.flatMap(event -> mApi.getOnlineUsers())
.subscribe(users -> showThemSomewhere(users));