rxjs可观测生命周期:检测一个已完成的可观测

rxjs observables lifecycle : detecting a completed observable

本文关键字:可观 一个 已完成 检测 生命 周期 rxjs      更新时间:2023-09-26

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

对于感冒的可观察者来说,这个问题没有多大意义,因为人们可以随意重新订阅,可观察者将重新开始。对于一个有时间限制的热可观测,人们可以想象一种边缘情况,即被传递到该热可观测的引用,并订阅其值,从未收到任何东西,甚至不知道永远不会收到任何东西。

Evers observable或observer的属性为Stopped。如果它已完成或抛出错误,或者它为false,这意味着它仍然处于活动状态,则这是正确的八分之一。

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

创建热可观察的"常用"通道,如创建主题或使用.publish(),将"重播"终端消息(即onErroronCompleted),但通常没有这样的保证。不过,我认为,任何没有终端消息重播的热序列都违反了可观察的契约,应该提交适当的错误。