当前位置: 首页 > 知识库问答 >
问题:

RxJava:删除项目?-背压

丰俊艾
2023-03-14

我使用RxJava观察点击几个按钮。

这些订阅将在一个对象上调用不同的函数,这需要几毫秒的时间。这些功能是同步的。

问题是,当按下太多按钮时,会出现背压异常。对我来说,有效的方法是删除几个输入(最好是旧的输入)。RxJava有可能做到这一点吗?

共有2个答案

潘佐
2023-03-14

对于RxJava 3,您可以使用新的Flowable概念:

    observable.toFlowable(BackpressureStrategy.LATEST)

你可以选择不同的策略:

    /**
     * OnNext events are written without any buffering or dropping.
     * Downstream has to deal with any overflow.
     * <p>Useful when one applies one of the custom-parameter onBackpressureXXX operators.
     */
    MISSING,
    /**
     * Signals a MissingBackpressureException in case the downstream can't keep up.
     */
    ERROR,
    /**
     * Buffers <em>all</em> onNext values until the downstream consumes it.
     */
    BUFFER,
    /**
     * Drops the most recent onNext value if the downstream can't keep up.
     */
    DROP,
    /**
     * Keeps only the latest onNext value, overwriting any previous value if the
     * downstream can't keep up.
     */
    LATEST
傅志用
2023-03-14

这就是onBackPressureDrop()的用途:

指示发射项目的速度快于观察者消耗项目的可观察对象丢弃而不是发射其观察者不准备观察的项目。

 类似资料:
  • 我已经在GitLab中创建了几个存储库。其中一个是为了测试目的,有一些提交和分支。我想删除或删除此存储库。我该怎么做呢?

  • 问题内容: 我是React的新手,制作了一个可以保存搜索的应用程序。这将提取JSON,但当前正在从静态数组中提取。我无法从搜索列表中删除搜索。 这是jsbin:http://jsbin.com/nobiqi/edit?js,输出 这是我的删除按钮元素: 和我的功能 我尝试了以下教程,但不确定从这里开始。如何删除搜索项目? 问题答案: 我猜,您是否正在寻找类似的东西? 在此示例中,请注意我如何绑定方

  • 问题内容: 这是我认为的相关代码: 单击复选框后,我希望从数据库中删除数组中的适当对象。 我的功能如下: 但是,这将删除数据库中的所有条目。我希望它仅删除有问题的特定对象。反正我有这样做吗? 问题答案: 好,知道了。 循环使用时,请使用。这使您可以将参数作为参数发送到函数,并且效果很好。

  • 问题内容: 嗨,我必须从一个JList中选择一个元素,将其从第一个元素中删除。我创建的方法仅插入一个元素,覆盖最后一个元素,并且不会从第一个JList中删除所选项目。这是代码: 第一名单 通过此方法填充: 第二个列表,我要在其中插入从第一个列表中删除的项目: 这是无效代码: 谢谢 问题答案: 问题是 您可能要添加一个元素并立即将其删除,因为添加和删除操作都在同一listModel上。 尝试

  • 问题内容: 谁能告诉我从我删除所选项目的简便方法? 我在Google和此处进行了搜索,但发现了很多方法。我应该使用哪种方式? 问题答案: 正如@Andreas_D所说,以数据为中心,更抽象的ListModel是解决方案。这可以是DefaultListModel。您应该在JList中显式设置模型。所以(感谢@kleopatra发表评论): DefaultListModel中有几种方法。 顺便说一句,

  • 问题内容: 在遍历列表时,我想根据条件删除列表中的项。请参见下面的代码。 这给了我一个例外。 如何才能做到这一点? 问题答案: 您需要使用和调用上,而不是使用循环。