繁体   English   中英

RxJS 可观察和订阅方法

[英]RxJS Observable and subscribe method

RxJS Observable是否在发射项目后移除项目(到Observer )?

要记住 RxJS 的棘手方面之一是考虑时间。 默认情况下,当一个 observable 发出一个值时,现有的观察者将接收该值。 如果观察者在发出一个值后订阅了一个可观察对象,它将不会收到它,因为它是一个“迟到的”订阅者。

此外,默认情况下,一个 observable 只能有一个观察者。 如果你想让一个 observable 有多个观察者,你应该使用share()操作符。 默认情况下,主题(及其子类)可以与多个订阅者共享。 即使那样,您也需要牢记时间。 您必须考虑源 observable 何时发出一个值,以及何时所有观察者都积极订阅以接收该值。

最后,您还可以缓存发出的值,这意味着任何迟到的订阅者仍将在订阅时收到这些值。 使用 observables,您可以使用shareReplay(n) ,其中n是您想要重播给任何新订阅者的值的数量。

BehaviorSubject的工作方式类似,默认情况下,它会在任何观察者订阅时将其最后一个值发送给他们。 ReplaySubject也执行此操作,您可以传入n个发出的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM