RxView.debounce等待去抖动的时间来执行命令,如何立即执行命令?

卡洛延·鲁塞夫(Kaloyan Roussev)

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

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

但是此代码的作用是,在执行防抖时间跨度之后执行命令,而不是执行代码,然后阻止在同一时间跨度中执行多次单击。

我怎样才能实现自己想要的?

杜斯特森

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

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章