ReplaySubject

이전 시간에 공부한 replay() , cache() 기능을 기억하는가.

이전에 배출한 모든 걸 캐싱해서 새로운 Observer등록시 캐싱된걸 다시 배출시키는 역할이다.

ReplaySubject는 그 기능을 가진 Subject이다.

즉 다시 말하자면 PublishSubject후에 .cache() 을 붙였다고 보면 된다.

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

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

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

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: Alpha <-- 처음부터 캐싱된 걸 보여준다.
Observer 2: Beta
Observer 2: Gamma
Observer 3: Alpha <-- 3번째도 캐싱된걸 보여주고 있다. 
Observer 3: Beta
Observer 3: Gamma


+ Recent posts