BehaviorSubject

주로 많이 쓰이는 subject중 하나이다.

기능은 최근 마지막껄 캐싱해서 보여주는 subject이다.

이전 시간에 배운 replay() , autoConnect() 을 기억하는가?

이 BehaviorSubject는 이 2가지 기능들을 통합해놓은 거라고 보면된다.

즉 PublishSubject후에 replay(1).autoConnect() 를 통합한 Subject 이다.

그럼 예제를 한번 보자.

//BehaviorSubject 선언
io.reactivex.subjects.Subject<String> subject = BehaviorSubject.create();

subject.subscribe( v -> System.out.println("Observer 1: " + v));

subject.onNext("Alpha");
subject.onNext("Beta");
subject.onNext("Gamma");

subject.subscribe( v -> System.out.println("Observer 2: " + v));
subject.subscribe( v -> System.out.println("Observer 3: " + v));
...........
Observer 1: Alpha
Observer 1: Beta
Observer 1: Gamma
Observer 2: Gamma <-- 캐싱되서 1개만 보여주고 있다. 
Observer 3: Gamma <-- 캐싱되서 1개만 보여주고 있다.

만약 마지막 1개의 이벤트를 배출하고 싶다면 BehaviorSubject 을 사용하자.


'스터디 > RxJava2' 카테고리의 다른 글

[Rxjava2]AsyncSubject  (0) 2017.10.22
[RxJava2]ReplaySubject  (0) 2017.10.22
[Rxjava2]예제로 이해하는 PublishSubject  (0) 2017.10.22
[RxJava2] Replaying , Caching 을 알아보자.  (0) 2017.10.22
[RxJava2]refCount 와 share 기본 개념  (0) 2017.10.22

+ Recent posts