【问题标题】:Make sure that all the items emitted by a hot observable are consumed exactly once确保热可观察对象发出的所有项目都被消耗一次
【发布时间】:2017-05-11 02:44:48
【问题描述】:

我有:

  1. 作为热可观察的源,在某些时候会发出一个项目 并完成
  2. 多个观察者不断订阅/取消订阅 到/从源(但最多可以同时订阅一个 时间)

我想将源转换为可观察对象,以确保观察者只消费一次该项目。稍后订阅的观察者应该只被通知该项目已被消费(完成事件)。

预期行为:

1) 在观察者订阅之前从源发射

--O-|------>  (source)

-----^-O-|->  (observer)

2) 观察者订阅后从源发射

------O-|->  (source)

--^---O-|->  (observer)

3) 消费后订阅

-O-|------->  (source)

-^-O-|----->  (observer1 - consumes the item)

------^-|-->  (observer2 - is notified that the item has been consumed)

实现这种行为的最简单、最优雅的方法是什么?

【问题讨论】:

    标签: rx-java


    【解决方案1】:

    使用BehaviorSubject。这准确地描述了它的行为。

    【讨论】:

    • 哦,看来我误解了 BehaviorSubject 的工作原理。你是对的,它完美地解决了问题!谢谢!
    猜你喜欢
    • 2019-04-23
    • 1970-01-01
    • 2020-03-05
    • 2019-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-26
    相关资源
    最近更新 更多