iOS/학습정리
iOS) RxSwift 가볍게 훑어보기 (3) just, of, from
yeonduing
2021. 1. 30. 14:53
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 배열에 저장된 요소를 순서대로 하나씩 방출해야 할 때 사용