Observable 생성 연산자
just
하나의 항목을 방출하는 Observable 생성
ObservableType
프로토콜의 Type Method
이다.
just로 생성한 Observable은 파라미터로 전달한 요소를 그대로 방출한다.
let disposeBag = DisposeBag()
let element = "🌝"
Observable.just(element)
.subscribe { event in print(event) }
.disposed(by: disposeBag)
Observable.just([1, 2, 3])
.subscribe { event in print(event) }
.disposed(by: disposeBag)
위 코드를 실행하면 다음과 같이 나온다.
next(🌝)
completed
next([1, 2, 3])
completed
배열로 들어간 값들이 각각 전달되는게 아니고 한 번에 전달되는 것을 알 수 있다.
of
두 개 이상의 요소를 방출하는 Observable을 만들기 위해서 사용한다.
파라미터가 가변 파라미터로 선언되어 있어 여러 개의 값을 동시에 전달할 수 있다. of 연산자 역시 ObservableType
프로토콜의 Type Method
이다.
let disposeBag = DisposeBag()
let apple = "🍎"
let orange = "🍊"
let kiwi = "🥝"
Observable.of(apple, orange, kiwi)
.subscribe { element in print(element) }
.disposed(by: disposeBag)
next(🍎)
next(🍊)
next(🥝)
completed
그렇다면 배열은 어떻게 처리될까?
Observable.of([1, 2], [3, 4], [5, 6])
.subscribe { element in print(element) }
.disposed(by: disposeBag)
next([1, 2])
next([3, 4])
next([5, 6])
completed
배열은 just
처럼 그대로 인식하여 통으로 출력된다.
from
전달된 배열이 각각 처리되도록 하기 위해 사용한다.
let disposeBag = DisposeBag()
let fruits = ["🍎", "🍊", "🥝", "🍒", "🍇"]
Observable.from(fruits)
.subscribe { element in print(element) }
.disposed(by: disposeBag)
next(🍎)
next(🍊)
next(🥝)
next(🍒)
next(🍇)
completed
정리
just 하나의 요소를 방출해야 할 때 사용
of 두 개 이상의 요소를 방출해야 할 때 사용
from 배열에 저장된 요소를 순서대로 하나씩 방출해야 할 때 사용
참고
'iOS > 학습정리' 카테고리의 다른 글
iOS) Dispatch (GCD) (0) | 2021.02.01 |
---|---|
iOS) Scene-Based Life-Cycle (0) | 2021.02.01 |
iOS) RxSwift 가볍게 훑어보기 (2) PublishSubject (0) | 2021.01.30 |
iOS) RxSwift 가볍게 훑어보기 (1) Observable (0) | 2021.01.29 |
CS) 프로세스와 스레드 (0) | 2021.01.22 |