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 을 사용하자.

results matching ""

    No results matching ""