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

初始化后如何更改rxjava/rxscala运算符(.debounce)参数

昝成弘
2023-03-14

我在rxjava/rxscala中使用.防抖运算符来捕获一些发生在彼此给定时间段内的事件,但希望使给定时间段可控。时间段。防抖用途作为参数给出。

理想情况下,我希望能够通过考试。去抖动操作符使用的最新值确定去抖动使用的时间段的可观测值。差不多吧。去抖动(timePeriodController,TimeUnit.Seconds)。

我看到了。debounce可以选择DebounceSelector,并认为这可能是解决方案。

我也看到了。在这种情况下,flatMap可以以非常复杂的方式使用。

编辑:似乎在RxJS中。debounce可以使用durationSelector,但这在RxJava中目前是不可能的。我想知道是否有解决办法?

如果有任何帮助,我将不胜感激。干杯亚当

共有1个答案

姚烨
2023-03-14

当需要更改计时器操作符的参数时,例如取消抖动时,我会使用switchMap()操作符

BehaviorSubject<Long> timer = BehaviorSubject.create(100);
...
timer
  .distinctUntilChanged()
  .switchMap( timerValue ->
    originalSource
      .debounce(timerValue))
  .subscribe(...);

每当计时器值改变时,防抖间隔就会改变。

 类似资料:
  • 我想在部署初始化成功后运行特定的命令。 这是我的yaml文件: 不过,我希望在成功初始化部署并运行POD之后(而不是之前)运行db迁移命令。 我可以为每个pod手动执行(使用kubectl exec),但这不是很好的扩展性。

  • 问题内容: 我正在尝试遵循Apple的“ 开始开发iOS应用程序(Swift)”教程,并且几乎完成了该教程。当我使用Xcode 8(我认为使用Swift 3而不是Swift 2)时,不得不修改本教程的几个部分。但是,我遇到了以下编译器错误,我不知道为什么: 在以下功能中: 我猜想有一个不同的NSIndexPath初始化程序在Swift 3中已更改,但我找不到它。难道我做错了什么? 谢谢, 问题答案

  • 我有一个JavaFX应用程序,它与用Java编写的控制器类一起使用FXML。在Java控制器中,在FXML节点初始化之前,我需要小心不要对其进行操作(否则我会得到一个NullPointerException),这在运行初始化方法之前是无法保证的。所以我发现自己经常这样做: 控制器在FXML文件中设置如下: 然后是Java文件中的控制器。 这是可行的,但它笨重且重复。我必须创建globalValue

  • 上一节中我们给大家介绍了Fullpage的基本用法,可能很多用户有个性化的需求,没关系Fullpage提供了多个参数,我们可以配置这些参数,满足我们项目的需求。 controlArrows 默认值:true,决定是否使用控制箭头向左或向右移动幻灯片。 verticalCentered 默认值:true,决定是否初始化后,是否垂直居中网页的内容,如果你想自定义元素的位置,那么你可以设置为false,

  • 如下 ServletContext 接口方法允许 servlet 访问由应用开发人员在Web 应用中的部署描述符中指定的上下文初始化参数: getInitParameter getInitParameterNames 应用开发人员使用初始化参数来表达配置信息。代表性的例子是一个网络管理员的 e-mail 地址,或保存关键数据的系统名称。

  • 如果做了上一节练习,你会发现模型net在调用初始化函数initialize之后、在做前向计算net(X)之前时,权重参数的形状中出现了0。虽然直觉上initialize完成了所有参数初始化过程,然而这在Gluon中却是不一定的。我们在本节中详细讨论这个话题。 延后初始化 也许读者早就注意到了,在之前使用Gluon创建的全连接层都没有指定输入个数。例如,在上一节使用的多层感知机net里,我们创建的隐