gpt4 book ai didi

java - 具有延迟可观察性的 SwitchMap

转载 作者:行者123 更新时间:2023-11-30 00:11:13 36 4
gpt4 key购买 nike

 Observable
.interval(2, TimeUnit.SECONDS)
.switchMap(integer ->
Observable
.just(integer * 2)
.delay(5,SECONDS))
.subscribe(integer -> { System.out.println(integer);});

据我所知,在 switch map 之后我们应该订阅最后创建的 observable,所以我希望 20 秒后输出“8”,但它会永远等待

最佳答案

switchMap()操作符的操作如下:

  1. 接收上游发出的值
  2. 使用发出的值调用函数参数,该值必须是可观察的
  3. 订阅 observable
  4. 发出来自该可观察对象的任何项目
  5. 当上游发出新项目时,取消订阅第 3 步中的可观察对象,然后从第 2 步开始。

结果是延迟的 observable 永远不会发出任何东西,因为它每 2 秒就会被取消订阅。

您将需要使用 flatMap() 运算符,它不会取消订阅每个发出的值。

关于java - 具有延迟可观察性的 SwitchMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48093821/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com