[RxSwift] Subject

AsyncSubject 将在源 Observable 产生完成时间之后,发出最后一个元素(有且仅有最后一个元素)。如果源 Observable 没有发出任何元素,只有一个完成事件,则AsyncSubject也只有一个完成事件。

PublishSubject 将对观察者发送订阅后产生的元素,而在订阅前发出的元素将不会发送给观察者。订阅者只能接收订阅后的事件,适合发送新的事件 let subject = PublishSubject<String>()

ReplaySubject 将对观察者发送全部的元素,无论观察者是何时进行订阅的。 let subject = ReplaySubject<String>.create(bufferSize: 1)

当观察者对 BehaviorSubject 进行订阅时,它会将源 Observable 中最新的元素发送出来(如果不存在最新的元素,就发出默认元素)。然后将随后产生的元素发送出来。如果源 Observable 因为产生了一个 error 事件而中止, BehaviorSubject 就不会发出任何元素,而是将这个 error 事件发送出来。let subject = BehaviorSubject(value: "abc")

https://beeth0ven.github.io/RxSwift-Chinese-Documentation/content/rxswift_core/observable_and_observer.html

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 参考RxSwift中文文档[https://beeth0ven.github.io/RxSwift-Chinese...
    码代码的小马阅读 164评论 0 0
  • RxSwift之Subject 在 RxsWift 中还有一种非常特殊的序列 Subject - 即公也为受。Su...
    silasjs阅读 527评论 0 4
  • Subject 是 RxSwift 中一种特殊的序列, 最重要的特征是 它即为可观察序列, 也为观察者. 在实际开...
    lb_阅读 407评论 0 2
  • 框架里面定义了一些辅助类型,它们既是可监听序列也是观察者。如果你能合适的应用这些辅助类型,它们就可以帮助你更准确的...
    左腿丶阅读 381评论 0 1
  • 通常在使用RxSwift的时候,我们并不会直接去使用observable来创建序列,更多的时候使用的是一系列的su...
    暮云_开发阅读 524评论 0 0