Relay

다른 소스로부터 이벤트를 받아서 구독자에게 전달.

Completed, Error는 다루지않고 Next이벤트만 존재한다.

UI에 주로 사용

RxSwift가 아닌 RxCocoa에 속함

PublishRelay

let prelay = PublishRelay<Int>()

prelay.subscribe { print("1: \\($0)") }
    .disposed(by: bag)

prelay.accept(1)

PublishSubject와 마찬가지로 초기에 next이벤트가 존재하지 않는다. accept로 새로운 이벤트를 전달한다.

BehaviorRelay

let brelay = BehaviorRelay(value: 1)
brelay.accept(2)

brelay.subscribe {
    print("2: \\($0)")
}
.disposed(by: bag)

brelay.accept(3)

print(brelay.value) // 읽기전용

가장 최근에 이벤트를 전달받는다.