ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • RxSwift - 3.Subjects
    RxSwift 2023. 3. 2. 16:57

    Subjects

    Subjects란

    Subjects는 ObservableObserver의 역할을 모두 수행할 수 있는 타입입니다.

    Subjects의 종류

    1. PublishSubject
      • 초기값이 없으며, 구독이 된 후 새로운 값만 emit합니다.
    2. BehaviorSubject
      • 초기값이 있으며, 구독이 됐을 때 현재의 값을 emit합니다.
    3. ReplaySubject
      • 정해진 크기의 값들을 가지고 있다가 구독이 됐을 때 가지고 있는 값들을 emit합니다.
    4. AsyncSubject
      • completed 이벤트가 발생했을 때, 가장 마지막 값을 emit합니다.
    5. PublishRelay, BehaviorRelay
      • next 이벤트만 발생하며, 다른 특징은 PublishSubject와 BehaviorSubject과 각각 동일합니다.

    1.PublishSubject

    PublishSubject는 초기값이 없는 Subject로 subscribe한 후 emit된 값만 받을 수 있습니다. 단, subscribe하기전에 발생한 onError, onCompleted이벤트의 경우 수신할 수 있습니다.

    2.BehaviorSubject

    BevaiorSubject는 초기값이 있는 Subject입니다. subscribe하면 가장 최신에 emit된 값 또는 초기값의 받을 수 있습니다. 단, subscribe하기전에 발생한 onError, onCompleted이벤트의 경우 onError, onCompleted이벤트만 수신할 수 있습니다.

    3.ReplaySubject

    ReplaySubject는 정해진 크기만큼 emit된 값들을 저장하고 있으며, subscribe하면 그 크기만큼 저장된 값들을 받을 수 있습니다.

    4.AsyncSubject

    AsyncSubject는 completed 이벤트가 발생했을 때 emit한 마지막 값을 emit합니다.(emit된 값이 없으면 아무 값도 emit하지 않습니다.) 또한, error이벤트가 발생하게 되면 아무 값도 emit하지 않습니다.

    • Complete
    • Error

    참조

    RxSwift Reactive Programming with Swift thirdnbsped by raywenderlich team's book

    https://reactivex.io/documentation/subject.html

    'RxSwift' 카테고리의 다른 글

    RxSwift - 4.Hot Observable, Cold Observable  (0) 2023.03.03
    RxSwift - 2.Observable  (0) 2023.02.28
    RxSwift - 1.Reactive Programming, RxSwift 개념  (0) 2023.02.27
    Functional Programming  (0) 2023.02.24
Designed by Tistory.