美文网首页
RxJava:Subject

RxJava:Subject

作者: linheimx | 来源:发表于2016-09-12 17:53 被阅读33次

他是一个桥梁

A Subject is a sort of bridge or proxy that is available in some implementations of ReactiveX that acts both as an observer and as an Observable.

扮演两种角色

两种行为

  1. Because it is an observer, it can subscribe to one or more Observables,
  2. and because it is an Observable, it can pass through the items it observes by reemitting them, and it can also emit new items.

1. AsyncSubject

特色:

  1. 在被观察者的提交数据完毕的时候,它提交(被观察者提交的)最后一个数据。

    Paste_Image.png
  2. 若被观察者出现了错误,它直接发射错误。

Paste_Image.png

2.BehaviorSubject

特色:

  1. 当一个观察者订阅它时,它将会提交给观察者最近的一个发射的数据。


    Paste_Image.png
  2. 若这个被观察者出现错误时,这时,当一个观察者订阅它时,这个被观察者会发射一个错误给它。

Paste_Image.png

3. PublishSubject

特色:当订阅者订阅后,被观察者发射了什么,就发射给订阅者什么。


Paste_Image.png Paste_Image.png

4. ReplaySubject

replay 是重播的意思。

特色:

  1. 只要有订阅者订阅,它就会把被观察者所提交过的所有数据 都发射给订阅者。
  2. 重播 肯定缓存了数据(可设置缓存的数量,或时间间隔)
Paste_Image.png

注意
当把它作为被观察者的时候,不要在多个线程中调用 它的onNext。这会引起并发的问题。

5. SerializedSubject

他可以包装 subject,所以当多个线程来访问它的时候,它是安全的。

包装:

  mySafeSubject = new SerializedSubject( myUnsafeSubject );

相关文章

  • 理解RxJava Subject --Publish, Repl

    这篇文章将围绕RxJava中的Subject来展开。 Publish Subject Replay Subject...

  • RxJava:Subject

    他是一个桥梁 A Subject is a sort of bridge or proxy that is ava...

  • RxJava笔记 Subject

    一、AsyncSubjectObserver会接收AsyncSubject的onComplete()之前的最后一个...

  • RxJava 的 Subject

    Subject 是一种特殊的存在 在前面一篇文章Cold Observable 和 Hot Observable中...

  • RxJava:Subject介绍

    这篇文章写的内容是从资料上复制下来的。应该是RxJava的官方资料翻译过来的文件,忘记原出处了。 Subject ...

  • RxJava的Subject

    Subject即可以是一个Observer也可以是一个Observerable,它是连接Observer和Obse...

  • Android RxBus的使用

    RxBus的核心功能是基于Rxjava的,在RxJava中有个Subject类,它继承Observable类,同时...

  • RxJava 第二篇 - Subject使用及示例

    本文介绍RxJava中Subject的使用。小白同学们看清楚并记好了,这里讲的是Subject,不是Subscri...

  • RxJava备忘资源

    1.给 Android 开发者的 RxJava 详解 2.RxJava中常见的几种Subject 3. RxJav...

  • RXJava Subject详解 (RXJava Part 2)

    前面说过了RXJava中的Observable,本次来说说Subject。附上前文的链接。喜欢的兄弟麻烦点个喜欢,...

网友评论

      本文标题:RxJava:Subject

      本文链接:https://www.haomeiwen.com/subject/ivbpettx.html