[ios/ swift] RxSwift - Observable

2023. 1. 5. 23:13IOS

 

Observable

observable은 observable sequence, sequence 라고도 불린다. 이는 일련의 이벤트들을 비동기적으로 생성하는 기능을 한다. observable은 next, completed, error 3가지 이벤트를 방출한다. 

  1. next : 요소 방출 
  2. completed : 종료
  3. error : 오류 

이 요소들을 observer가 수신하여 작동하는 방식으로 이루어 진다. 이 과정을 Subscribe라고 한다. 즉 Subscribe 하지 않으면 observable은 계속해서 이벤트를 내보내지만 수신할 수가 없다! 

 

 

 


Observable 생성

 

just - 오직 하나의 요소만을 가지는 Observable 생성(어레이 가능)

of - 여러개 요소들을 가지는 Observable 생성

from - 오직 어레이만 받는 Observable 생성

Empty - completed만 존재하는 Observable 생성

Never - 아무것도 존재하지 않는 Observable 생성

Range - start부터 count까지 요소를 가지는 Observable 생성

Dispose 옵저버블 생성 구독, 메모리 누수 나지 않게 

Create 이벤트를 각각 내뱉는 

 

 

 

 


Observable의 dispose

 

구독 취소를 의미한다. 만일 dispose를 해주지 않는다면 메모리 누수가 발생한다. 따라서 생성, 구독, dispose 를 하나의 생명주기라고 생각하면된다. disposebag은 구독들을 가지고 있다가 한번에 구독 취소를 시켜준다.

 

 

 

 


Traits

Single, Maybe, Error이 세가지를 Traits이라고 부르며 좁은 범위의 observable들이다. 이는 가독성을 위해 사용되며 말 그대로 좁은 범위이기 때문에 사용하지 않아도 상관 없다. 

 

- Single :  success(next + complete), error

- Maybe : success(next + complete), Completed(only completed), error

- Completable : Completed(only completed), error