【问题标题】:rxjs observables lifecycle : detecting a completed observablerxjs 可观察对象生命周期:检测已完成的可观察对象
【发布时间】:2016-06-04 18:30:39
【问题描述】:

有没有办法知道Rx.Observable 是否在事后完成,即在onCompleted 呼叫订阅者之后?这类似于迭代器的has_next 方法。我在文档(或其他地方)中找不到关于该主题的任何内容。

对于一个冷的 observable,这个问题没有多大意义,因为人们可以随意重新订阅,并且 observable 将重新开始。对于一个有时间限制的 hot observable,我们可以想象一个边缘情况,传递一个对 hot observable 的引用,然后订阅它的值,从来没有收到任何东西,甚至不知道永远不会收到任何东西。

【问题讨论】:

    标签: javascript rxjs


    【解决方案1】:

    任何可观察者或观察者都有属性 isStopped。如果它已完成或抛出错误,则为真,否则为假,表示它仍然处于活动状态。

    【讨论】:

      【解决方案2】:

      这是我从另一个频道得到的答案(引用如下)。

      创建hot observable的“常规”渠道,例如创建主题或使用.publish()会“重播”终端消息(即onErroronCompleted),但在一般的。我会争辩说,任何没有此终端消息重播的热序列都违反了 observable 的合同,并且应该提交适当的错误。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-18
        • 1970-01-01
        • 2022-11-25
        • 1970-01-01
        • 2020-08-28
        • 1970-01-01
        相关资源
        最近更新 更多