Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中消除改装响应请求的影响?_Java_Android_Rx Java - Fatal编程技术网

如何在java中消除改装响应请求的影响?

如何在java中消除改装响应请求的影响?,java,android,rx-java,Java,Android,Rx Java,我正在从事一个android项目,该项目通过使用RxJava可观察和订阅进行改造来发出请求 然而,在一些交互中,这个请求可以被多次调用,我只希望在预定义的时间窗口(debounce)中执行最后一个请求 我试图将debounce操作符直接应用于可观察对象,但它不起作用,因为每次发生交互时都会执行下面的代码: mApi.getOnlineUsers() .debounce(1, TimeUnit.SECONDS) .subscribe(...) 我猜它应该只创建一个可观察对象,并且

我正在从事一个android项目,该项目通过使用RxJava可观察和订阅进行改造来发出请求

然而,在一些交互中,这个请求可以被多次调用,我只希望在预定义的时间窗口(debounce)中执行最后一个请求

我试图将
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));