Subject在ReactiveX是作为observer和observerable的一个bridge或者proxy。因为它是一个观察者,所以它可以订阅一个或多个可观察对象,同时因为他是一个可观测对象,所以它可以传递和释放它观测到的数据对象,并且能释放新的对象。
Rx中一下几种Subject:PublishSubject、BehaviorSubject、ReplaySubject、AsyncSubject:
1.PublishSubject
从订阅之后开始将事件向下传递给观察者,不会重放过去的事件。
2.BehaviorSubject
从订阅之前的最后一个事件开始向下传递,如果订阅前没有事件,可以设置一个默认值。
3.ReplaySubject
将所有事件缓存起来,每次订阅都会重放缓存中的所有事件,可以控制缓存事件的数量或时间跨度。
4.AsyncSubject
只在事件流结束时,将最后一个事件发送给观察者,如果没有事件,也会发送一个默认值。
4.MaybeSubject
MaybeSubject提供了状态方法onSuccess onError
应用场景:
1.状态监听
2.
https://blog.csdn.net/mq2553299/article/details/78848773
网友评论