가장 최근 이벤트를 저장하고 새로운 구독자에게 전달
let p = PublishSubject<Int>()
p.subscribe { print("PublishSubject >>", $0) } // 내부에 이벤트가 저장되지 않는상태로 생성
.disposed(by: disposeBag)
PublishSubject는 내부에 이벤트가 저장되지 않는상태로 생성된다.
let b = BehaviorSubject<Int>(value: 0)
b.subscribe { print("Behavior Subject >>", $0) } // 바로 next 이벤트가 전달됨(내부에 next이벤트가 생성되있음)
.disposed(by: disposeBag)
BehaviorSubject는 초기값을 가지며 내부적으로 next이벤트가 생성된 상태로 생성된다.
let b = BehaviorSubject<Int>(value: 0)
b.subscribe { print("Behavior Subject >>", $0) } // 바로 next 이벤트가 전달됨(내부에 next이벤트가 생성되있음)
.disposed(by: disposeBag)
내부에 next이벤트가 생성되었기 때문에 바로 0을 전달받는다.
let b = BehaviorSubject<Int>(value: 0)
b.subscribe { print("Behavior Subject >>", $0) } // 바로 next 이벤트가 전달됨(내부에 next이벤트가 생성되있음)
.disposed(by: disposeBag)
b.onNext(1)
0, 1을 전달받음
b.onCompleted()
//b.onError(MyError.error)
// completed, error 상태만 전달받음
b.subscribe { print("Behavior Subject3 >>", $0) } // 바로 next 이벤트가 전달됨(내부에 next이벤트가 생성되있음)
.disposed(by: disposeBag)
Completed, Error가 있는 경우 Completed, Error만 전달받는다.