반응형
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
- @Binding
- RxCocoa
- Operater
- Creating Operators
- dismiss
- nonisolated
- subject
- Bug
- Xcode
- NullObject
- RxSwift
- SWIFT
- swift6
- init
- IOS
- graphql
- operator
- nestjs
- @State
- RFC1738/1808
- init?
- ios14
- SwiftUI
- @EnvironmentObject
- vim
- NavigationLink
- typeorm
- Operators
- @Environment
- URL(string:)
Archives
- Today
- Total
Tunko Development Diary
RxSwift) Creating Operators 1. (just, of, from, range, generate) 본문
옵저버블을 생성하는 연산자 입니다.
Just
let disposeBag = DisposeBag()
let element = "👍"
Observable.just(element)
.subscribe { event in print(event)}
.disposed(by: disposeBag)
Observable.just(["👍", "👊", "👎"])
.subscribe { event in print(event)}
.disposed(by: disposeBag)
출력
next(👍)
completed
next(["👍", "👊", "👎"])
completed
Just 연산자는 옵저버블을 생성하면서 요소를 방출합니다. 배열로 된 요소도 한번에 방출하게 됩니다.
Of
let disposeBag = DisposeBag()
let emoticon1 = "⭐️"
let emoticon2 = "🌙"
let emoticon3 = "🌎"
Observable.of(emoticon1, emoticon2, emoticon3)
.subscribe { print($0) }
.disposed(by: disposeBag)
출력
next(⭐️)
next(🌙)
next(🌎)
completed
Of 연산자는 옵저버블을 생성하면서 내부에 요소를 순차적으로 방출합니다.
from
let disposeBag = DisposeBag()
let emoticons = ["😀", "😃", "😄", "😁"]
Observable.from(emoticons)
.subscribe { print(emoticons) }
.disposed(by: disposeBag)
출력
next(😀)
next(😃)
next(😄)
next(😁)
completed
from 연산자는 배열로 받은 요소를 하나씩 방출합니다.
range
let disposeBag = DisposeBag()
Observable.range(start: 1, count: 5)
.subscribe { print($0) }
.disposed(by: disposeBag)
출력
next(1)
next(2)
next(3)
next(4)
next(5)
range 연산자는 지정된 숫자 만큼 객체를 방출합니다. 반드시 정수를 전달해야합니다. range 연산자는 시작 값부터 1씩 증가하는 연산자 입니다. 증가의 폭의 변경이나 감소를 할 수는 없습니다.
generate
let disposeBag = DisposeBag()
Observable.generate(initialState: 0,
condition: { $0 <= 18 },
iterate: { $0 + 3 })
.subscribe{ print($0) }
.disposed(by: disposeBag)
출력
next(0)
next(3)
next(6)
next(9)
next(12)
next(15)
next(18)
completed
generate 연산자는 초기 값을 증가시키면서 방출 결과를 조정할 수 있습니다.
public static func generate(initialState: Element, condition: @escaping (Element) throws -> Bool, scheduler: ImmediateSchedulerType = CurrentThreadScheduler.instance, iterate: @escaping (Element) throws -> Element) -> Observable<Element> {
Generate(initialState: initialState, condition: condition, iterate: iterate, resultSelector: { $0 }, scheduler: scheduler)
}
- initialState : 시작값
- condition : true 일때만 값을 방출
- iterate : 방출된 값을 변경하는 클로저
- scheduler : 스케쥴 파라미터 (다음에 내용 추가 예정)
반응형
Comments