rxjs observables 生命周期:检测一个完整的 observable
rxjs observables lifecycle : detecting a completed observable
有没有办法知道 Rx.Observable
是否在事后完成,即在 onCompleted
调用订阅者之后?这类似于迭代器的 has_next
方法。我在该主题的文档(或其他地方)中找不到任何内容。
对于一个冷的observable,这个问题没有太大意义,因为可以随意重新订阅,然后observable会重新启动。对于一个有时间限制的热 Observable,可以想象这样一种边缘情况:传递一个对那个热 Observable 的引用,并订阅它的值,从不接收任何东西,甚至不知道什么都不会接收。
这是我从另一个渠道得到的答案(引用如下)。
"usual" 创建热观察对象的渠道,例如创建主题或使用 .publish()
将 "replay" 终端消息(即 onError
或 onCompleted
),但一般没有这样的保证。我会争辩说,任何没有此终端消息重播的热序列都违反了 observable 的契约,并且应该提交适当的错误。
Evers obserbable 或观察者 属性 isStopped。如果它已完成或抛出错误,则为 true,否则为 false,这意味着它仍然处于活动状态。
有没有办法知道 Rx.Observable
是否在事后完成,即在 onCompleted
调用订阅者之后?这类似于迭代器的 has_next
方法。我在该主题的文档(或其他地方)中找不到任何内容。
对于一个冷的observable,这个问题没有太大意义,因为可以随意重新订阅,然后observable会重新启动。对于一个有时间限制的热 Observable,可以想象这样一种边缘情况:传递一个对那个热 Observable 的引用,并订阅它的值,从不接收任何东西,甚至不知道什么都不会接收。
这是我从另一个渠道得到的答案(引用如下)。
"usual" 创建热观察对象的渠道,例如创建主题或使用 .publish()
将 "replay" 终端消息(即 onError
或 onCompleted
),但一般没有这样的保证。我会争辩说,任何没有此终端消息重播的热序列都违反了 observable 的契约,并且应该提交适当的错误。
Evers obserbable 或观察者 属性 isStopped。如果它已完成或抛出错误,则为 true,否则为 false,这意味着它仍然处于活动状态。