Observable 생성
옵저버블 생성에 사용하는 가장 단순하고 기초적인 세 가지 연산자 just, of, from
import UIKit
import RxSwift
let disposeBag = DisposeBag()
just
하나의 항목을 방출하는 Observable을 생성
just로 생성하는 Observable은 파라미터로 전달한 요소를 그대로 방출한다. (from 연산자와 구분하기!)
Observable.just([1,2,3])
.subscribe { element in print(element) } //next([1,2,3])
.disposed(by: disposeBag) //completed
of
두 개 이상의 요소를 방출하는 Observable을 만들어야 한다면 of 연산자를 사용.
of 의 파라미터는 가변 파라미터로 선언 되어 있어 여러개의 값을 동시에 전달할 수 있음.
just와 마찬가지로 파라미터로 전달한 요소를 그대로 방출됨 (배열을 전달하면 배열이 방출)
Observable.of([1,2], [3,4], [5,6])
.subscribe { element in print(element) } //next([1,2]) next([3,4]) next([5,6])
.disposed(by: disposeBag) //completed
from
배열에 저장된 요소를 하나씩 방출하고 싶다면? from 연산자 사용
배열에 포함된 요소를 하나씩 순서대로 방출.
let numbers = [1, 2, 3, 4]
Observable.from(numbers)
.subscribe { element in print(element) } //next(1) next(2) next(3) next(4)
.disposed(by: disposeBag) //completed
range, generage : 정수를 지정된 수만큼 방출하는 옵저버블을 생성
repeatElement : 특정 항목이나 연속된 항목들을 반복적으로 방출하는 옵저버블을 생성
deferred : 특정 조건에 따라 옵저버블을 생성하는 방법?
create : 옵저버블 동작을 직접 구현?
empty, error : 요소를 방출하지 않는 특별한 연산자
Observable 변환
Observable이 배출한 항목들을 변환하는 연산자들
toArray :
map :
flatMap : 하나의 옵저버블이 발행하는 항목들을 여러개의 옵저버블로 변환하고, 항목들의 배출을 차례차례 줄 세워 하나의 옵저버블로 전달한다.
Observable 필터링
소스 Observable에서 선택적으로 항목을 배출하는 연산자들
ignoreElements : next 이벤트를 필터링
elementAt : 특정 인덱스(n번째)에 위치한 항목만 방출
filter : 특정 조건에 맞는 항목들을 필터링
'Swift iOS 앱 개발 > Swift' 카테고리의 다른 글
[Swift iOS] sort JSON Array : JSON 데이터 배열 정렬하기 (0) | 2021.05.31 |
---|---|
[RxSwift] RxCocoa Binding (0) | 2021.05.25 |
[RxSwift] Subject (0) | 2021.05.24 |
[RxSwift] Observables & Observers (0) | 2021.05.21 |
[RxSwift] ReactiveX (0) | 2021.05.20 |