SwitchMap具有可观察到的延迟

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

据我了解,切换映射后,我们应该订阅上一个创建的可观察对象,因此我希望20秒后输出“ 8”,但它将永远等待

鲍勃·达格利什(Bob Dalgleish)

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

  1. 接收上游发出的值
  2. 使用发出的值调用函数参数,该值必须是可观察的
  3. 订阅可观察的
  4. 发射可观察到的任何物品
  5. 当从上游发出新物品时,请在步骤3中取消订阅可观察项,然后从步骤2开始。

结果是延迟的可观测对象将永远不会发出任何东西,因为它将每2秒退订一次。

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

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章