[iOS] - RxSwift 입문 (5)

Shawn·2021년 7월 11일
0

RxSwift

목록 보기
5/8
post-thumbnail

Subject

Subject에 대해 알아보자 .
공식 홈페이지를 이용해보면,

4가지의 Subject가 있다고 한다.
하나하나 살펴보자.

1. AsyncSubject

마블을 통해 이해해보자.

AsyncSubject는 Observable을 통해 Subscribe 된 후 어떠한 이벤트가 발생해도 결과를 배출하지 않는다. 그러다가 Observable의 동작이 완료되고 나면 마지막 결과를 모든 Observable에 배출한다. ( 파랑색이 모든 Stream에 있다. )

또한, Observable이 오류로 인해 동작이 끝난다면, 모든 Observable에 오류값을 전달한다.

2. BehaviorSubject

옵저버가 BehaviorSubject를 Subscribe 하기 시작하면, 기본값 (분홍색) 을 배출하고, 앞으로 오는 모든 이벤트를 배출한다.
도중 다른 옵저버가 Subscribe 하면, 바로 직전의 값 (연두) 를 배출하는 것으로 보아
분홍색 이벤트가 완전 Default 값이 아닐 수도 있다고 추측할 수 있다. 바로 직전 이벤트일 수도 있다.

오류로 인해 종료된다면, 에러를 반환한다. 새로 subscribe한 Observable 에도 에러를 반환한다.

3. PublishSubject

이번엔 Subscribe 했을 때 아무것도 배출하지 않고, 그다음 이벤트부터 배출하는 것을 볼 수 있다.

에러가 발생했을 때도 예상이 가능하다.

4. RelaySubject

RelaySubject 는 Subscribe 시점과 별개로 그 전에 발생했던 모든 이벤트들을 배출한다.

profile
iOS 개발, Flutter 개발, Swift, Dart, 42 Seoul 3기

0개의 댓글