적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

Swift iOS 앱 개발/Swift

[RxSwift] Operators 연산자

hongssup_ 2021. 5. 24. 17:04
반응형

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 : 특정 조건에 맞는 항목들을 필터링

 

 

 

728x90
반응형

'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