【发布时间】:2018-09-06 07:02:07
【问题描述】:
完成后的事件是否会取消订阅 Observable 或任何其他区别?
【问题讨论】:
完成后的事件是否会取消订阅 Observable 或任何其他区别?
【问题讨论】:
您填写了Observable,并取消订阅了Subscription。这是对两个不同对象的两种不同方法。你订阅了一个 observable,它返回一个 Subscription 对象。
如果您想停止收听来自 Observable 的发射,请致电 subscription.unsubscribe()。
如果您想让Observable 完成他的任务,请致电observable.complete()。 (这只存在于Subject 和那些扩展Subject 的人)。 complete 方法本身也会取消订阅任何可能的订阅。
当 Observable 向其观察者发出 OnError 或 OnComplete 通知时,这将结束订阅。观察者不需要发出 Unsubscribe 通知来结束由 Observable 以这种方式结束的订阅。
【讨论】:
Observable 而不取消订阅 2 个 Subscriptions 将为我们处理 unsubscribe() 方法?换句话说,如果我们 complete() Observable,unsubscribe() 是可选的吗?
unsubscribe 是可选的,您可以在 reactivex 合约 documentation 中了解它。我将使用此文档中的引用更新我的答案
如果你完成了一个Observable,它将调用complete() 方法,然后是拆解逻辑和unsubscribe()。
调用unsubscribe() 本身不会调用完整方法。
Angular 异步管道是调用unsubscribe 的一个示例。因此,如果您有完整的方法并使用异步管道,则不会调用它。
【讨论】: