我的 Android 应用程序中有以下代码,试图防止多次单击按钮:
RxView.clicks(bSubmit)
.debounce(2500, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(c -> displayToast());
但不是执行代码,然后防止同一时间跨度内的多次点击发生作用, 这段代码的作用是,它在去抖时间过去后执行命令。
如何才能实现我想要的目标?
最佳答案
根据Reactivex.io documentation , debounce
在时间窗口内发出最后一个事件。
您想要的是在时间窗口内发出 first 事件,这就是 throttleFirst
(请参阅 documentation )。
RxView.clicks(bSubmit)
.throttleFirst(2500, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(c -> displayToast());
关于android - RxView.debounce等待debounce的时间才执行命令,如何立即执行命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38850760/