clamp
Clamp
clamp
글쓰기 관리
전체 방문자
오늘
어제
  • 분류 전체보기 (509)
    • IOS (85)
    • SwiftUI+TCA+Combine (9)
    • RxSwift + MVVM (56)
    • Clean Architecture (12)
    • SWIFT (56)
    • iOS - TDD (2)
    • 디자인패턴 (4)
    • CS (56)
      • 알고리즘 (29)
      • 운영체제 (15)
      • 자료구조 (2)
      • 네트워킹 (4)
      • 기타 (6)
    • 회고 (0)
    • Firebase (18)
    • SwiftUI (10)
    • iOS - UIKit (11)
    • iOS - 오픈소스 (6)
    • 코딩테스트 (166)
      • 프로그래머스 (164)
    • 정보처리기사 (14)
    • GitHub (2)
글쓰기 / 관리자

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Q
  • uikit
  • ㅅ
  • Swift

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
clamp

Clamp

RxSwift(8). Subject
RxSwift + MVVM

RxSwift(8). Subject

2023. 2. 16. 18:19

Observable은 Observer에 Event를 전달한다.

Observer은 Observable을 구독하고 전달되는 Event를 처리한다.

 

Observable은 다른 Observable을 구독하지 못한다.

Observer는 다른 Observer로 Event를 전달하지 못한다.

 

반면 Subject는 다른 Observable에서 Event를 받아서 구독자로 전달할 수 있다.

Subject는 Observable인 동시에 Observer이다.

RxSwift는 4가지 Subject를 제공한다.

PublishSubject

BehaviorSubject

ReplaySubject

AsyncSubject

 

PublishSubject: 가장 기본적인 Subject, Subject로 전달되는 새로운 Event를 구독자로 전달한다

BehaviorSubject: 생성 시점에 시작 Event를 지정하고, Subject로 전달되는 최신Event를 저장해두었다가 새로운 구독자에게 최신Event를 전달한다.

ReplaySubject: 하나 이상의 최신 Event를 버퍼에 저장한다. Observer가 구독을 시작하면 버퍼에 있는 모든 Event를 전달한다.

AsyncSubject: Subject로 CompletedEvent가 전달되는 시점에 마지막으로 전달된 NextEvent를 구독자에게 전달한다.


RxSwift는 Subject를 rapping하고있는 2가지 Relay를 제공한다.

PublishRelay

BehaviorRelay

이전 버전에서 제공하던 Variable이 Relay로 대체되었다.

 

PublishRelay: PublishSubject를 rapping한것이다

BehaviorRelay: BehaviorSubject를 rapping한것이다.

 

Relay는 일반적인 Subject와 달리 NextEvent만 받고 나머지 Completed와 Error Event는 받지 않는다.

주로 종료 없이 계속 반복되는 이벤트 시퀀스를 처리할 때 사용한다.

 

저작자표시 비영리 동일조건 (새창열림)
    'RxSwift + MVVM' 카테고리의 다른 글
    • RxSwift(9). BehaviorSubject
    • RxSwift(9). PublishSubject
    • RxSwift(7). Operators(연산자)
    • RxSwift(6). Disposables
    clamp
    clamp
    주니어 iOS개발자의 발악!!!!!!!

    티스토리툴바