지정된 버퍼수만큼 최신의 이벤트를 전달받는다. 단 메모리에 데이터가 저장되기 떄문에 이점에 유의해서 사용해야한다.
생성
let rs = ReplaySubject<Int>.create(bufferSize: 3) // 3개의 이벤트를 저장하는 버퍼생성
let rs = ReplaySubject<Int>.create(bufferSize: 3) // 3개의 이벤트를 저장하는 버퍼생성
(1...10).forEach { rs.onNext($0) } // 10개의 이벤트 전달
rs.subscribe { print("Observer 1>>", $0) } // 마지막 3개의 이벤트만받는다.
.disposed(by: disposeBag)
rs.subscribe { print("Observer 2>>", $0) } // 마지막 3개의 이벤트만받는다.
.disposed(by: disposeBag)
마지막 3개의 이벤트만 전달받는다.(8, 9, 10)
rs.onNext(11)
rs.subscribe { print("Observer 3>>", $0) } // 마지막 3개의 이벤트만받는다.
.disposed(by: disposeBag)
새로운 next 이벤트를 전달하는 경우 9, 10, 11을 전달받음
rs.onCompleted() // 3개의 구독자에게 Completed이벤트 전달
rs.onError(MyError.error)
rs.subscribe { print("Observer 4>>", $0) } // 마지막 3개의 이벤트만받는다.
.disposed(by: disposeBag)
3개의 구독자에게 Completed 이벤트 전달