RxSwift시작하기1-4
작성일
더욱 더 다양한 케이스를 살펴보면
1번쨰
let disposeBag = DisposeBag()
let subject = BehaviorSubject(value: "Initial Value")
subject.subscribe { envet in
print(envet)
}
이런식으로 BehaviorSubject에 값을 담으면, next(Initial Value) 이런식으로 관찰하자마자 값을 볼 수 있다.
2번쨰
let disposeBag = DisposeBag()
let subject = BehaviorSubject(value: "Initial Value")
subject.onNext("마지막 이슈")
subject.subscribe { envet in
print(envet)
}
subject.onNext("이슈 1")
를 출력해보면
next(마지막 이슈)
next(이슈 1)
가 나오는데,
이런식으로 알람(subscribe)앞에 .onNext를 써버리면,
BehaviorSubject값이 나오지 않는다.
그리고 subscribe에 가장 가까운 onNext값을 출력해준다.
3번째
let disposeBag = DisposeBag()
let subject = ReplaySubject<String>.create(bufferSize: 2)
// 해당주제에서 방출된 마지막 두개의 값을 나타내준다.
subject.onNext("이슈 1")
subject.onNext("이슈 2")
subject.onNext("이슈 3")
subject.subscribe { event in
print(event)
}
subject.onNext("이슈 4")
subject.onNext("이슈 5")
subject.onNext("이슈 6")
print("[sub 스크 2]")
subject.subscribe { event in
print(event)
}
출력해보면
next(이슈 2)
next(이슈 3) //여기까지 3개중에 1버리고 2개출력 그리고
next(이슈 4) //여기서부턴 이슈 추가해주고
next(이슈 5)
next(이슈 6)
[sub 스크 2]
next(이슈 5) //여기서부턴 다시 지금까지 출력된 이슈중에 마지막 2개출력
next(이슈 6)
이런 식으로 출력이 된다.