RxSwift 入门 - 第二部分

Subject

Subject其实就是Observer,拥有Observer的所有功能,也可以认为是热的Observer。
所谓热冷的区别在于,冷的Observable,它等待有订阅才开始发送数据,而Subject把原来冷的给变成热的。
Subject有以下的子类可以使用:

  • PublishSubject
  • ReplaySubject
  • BehaviorSubject
  • Variable

## PublishSubject
它仅仅会发送observer订阅之后的事件,也就是说如果sequence上有.Next 的到来,但是这个时候某个observer还没有subscribe它,这个observer就收不到这条信息,它只会收到它订阅之后发生的事件。

ReplaySubject

它和PublishSubject不同之处在于它不会漏消息。即使observer在subscribe的时候已经有事件发生过了,它也会收到之前的事件序列。

BehaviorSubject

当有observer在订阅一个BehaviorSubject的时候,它首先将会收到Observable上最近发送一个信号(或者是默认值),接着才会收到Observable上会发送的序列。

Variable

Variable是BehaviorSubject的封装,它和BehaviorSubject不同之处在于,不能向Variable发送.Complete和.Error,它会在生命周期结束被释放的时候自动发送.Complete。

Zmsky

http://xloli.net/?page_id=11

发表评论