1

我的 Android 应用程序中有以下代码,试图防止多次单击按钮:

RxView.clicks(bSubmit)
            .debounce(2500, TimeUnit.MILLISECONDS)
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(c -> displayToast());

但不是执行代码,然后防止在同一时间跨度内多次点击被执行,这段代码所做的是,它在去抖时间跨度过去后执行命令。

我怎样才能达到我想要的?

4

1 回答 1

4

根据Reactivex.io 文档debounce在时间窗口内发出最后一个事件。

您想要的是在时间窗口内发出第一个事件,这是什么throttleFirst(参见文档)。

RxView.clicks(bSubmit)
        .throttleFirst(2500, TimeUnit.MILLISECONDS)
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(c -> displayToast());
于 2016-08-09T14:54:59.673 回答