RxSwift - kirseia/study GitHub Wiki

학습 문서

정리

  • Subjects 는 Observer / Observable 두 역할을 모두 수행하는 브릿지 또는 프록시

  • 하나의 이상의 Observable 을 구독하고 값을 내보내리고 함

  • PublishSubject - 구독 이후에만 값을 전달

  • ReplaySubject - 버퍼 크기 만큼의 값을 저장하고 있을 수 있음

  • BehaviorSubject - 하나의 버퍼를 가지는 Subject, 구독 후 마지막 값을 전달

  • Variable - BehaviorSubject를 감쌌으며 complete나 error가 발생하지 않음, 해제 될 때 complete 발생

    • Variable은 없어지고 BehaviorRelay 로 대체됨
  • 참고1

  • 참고2


- UI에서 사용하기 위해 Subject를 Relay 로 만든 것처럼 (error 안나는), Observable이 에러를 무시하려면 Driver / Signal로 써야 함
  • 기본이 main thread 이 Observable
  • signal 은 subscribe 이후에 (like publishSubject), driver 는 subscribe 시점에 이전값도 (like behaviorSubject)

Binder

  • Observable -> bind to -> binder
  • binder는 obervable value 에 반응함.
extension Reactive where Base: UIViewController {
    
    /// Bindable sink for `startAnimating()`, `stopAnimating()` methods.
    public var isAnimating: Binder<Bool> {
        return Binder(self.base, binding: { (vc, active) in
            if active {
                vc.startAnimating()
            } else {
                vc.stopAnimating()
            }
        })
    }
    
}
⚠️ **GitHub.com Fallback** ⚠️