«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

올해는 머신러닝이다.

[RxJava2]ReplaySubject 본문

스터디/RxJava2

[RxJava2]ReplaySubject

행복한 수지아빠 2017. 10. 22. 01:28

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