반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- init?
- NullObject
- Operators
- vim
- Bug
- ios14
- Xcode
- RxSwift
- IOS
- subject
- dismiss
- Creating Operators
- @Environment
- operator
- swift6
- NavigationLink
- nestjs
- graphql
- @Binding
- Operater
- typeorm
- @State
- SwiftUI
- init
- URL(string:)
- SWIFT
- RFC1738/1808
- RxCocoa
- nonisolated
- @EnvironmentObject
Archives
- Today
- Total
Tunko Development Diary
RxSwift) Operators 란? 본문
연산자란?
연산자는 대부분 옵저버블 상에서 동작하고 새로운 옵저버블을 리턴합니다. 아래 예제에서 사용되는 from 연산자의 레퍼런스를 확인하면 -> Observable<Int> 을 리턴합니다.
static func from(_ array: [Int], scheduler: ImmediateSchedulerType = CurrentThreadScheduler.instance) -> Observable<Int>
따라서 연산자 뒤에 또다른 연산자를 이어서 사용할 수 있습니다.
연산자는 옵저버블이 데이터를 방출하기전에 해줍니다.
옵저버블이 데이터를 방출하는 시점은 옵저버가 구독하는 시점. 즉 .subscribe 하기전에 해줍니다.
subscribe는 최종적으로 데이터가 방출되는 결과라고 생각하면 편합니다.
위에서는 take연산자, filter연산자를 사용했습니다.
take연산자는 방출되는 요소중에서 인자값 수만큼 데이터를 방출합니다.
filter연산자는 원하는 값 조건을 적용합니다. 위에서는 짝수만 추출했습니다.
let bag = DisposeBag()
Observable.from([1, 2, 3, 4, 5, 6, 7, 8, 9])
.take(5)
.filter { $0.isMultiple(of: 2) }
.subscribe { print($0) }
.disposed(by: bag)
next(2)
next(4)
completed
즉 1,2,3,4,5,6,7,8,9 중에 5개
1,2,3,4,5 여기서 짝수만
2,4 만 방출됩니다.
호출 순서를 뒤바꾸면
Observable.from([1, 2, 3, 4, 5, 6, 7, 8, 9])
.filter { $0.isMultiple(of: 2) }
.take(5)
.subscribe { print($0) }
.disposed(by: bag)
next(2)
next(4)
next(6)
next(8)
completed
즉 1,2,3,4,5,6,7,8,9 중에
2,4,6,8 여기서 5개 만
2,4,6,8 이 방출됩니다.
반응형
'Development > RxSwift' 카테고리의 다른 글
RxSwift) PublishSubject 란? (0) | 2022.05.30 |
---|---|
Subject 란? (0) | 2022.05.30 |
RxSwift) Disposables 란? (0) | 2022.05.30 |
RxSwift) Observables 과 Observers (0) | 2022.05.30 |
Reactive Programming 란? (0) | 2022.05.30 |
Comments