일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- nestjs
- swift6
- RFC1738/1808
- @EnvironmentObject
- nonisolated
- operator
- dismiss
- typeorm
- NullObject
- RxCocoa
- Creating Operators
- init
- URL(string:)
- ios14
- subject
- Bug
- vim
- SWIFT
- NavigationLink
- RxSwift
- @Binding
- graphql
- Operater
- Operators
- init?
- SwiftUI
- IOS
- @State
- Xcode
- @Environment
- Today
- Total
목록전체 글 (147)
Tunko Development Diary
merge 연산자는 옵저버블에서 방출되는 여러 이벤트를 하나의 옵저버블에서 방출하도록 만들어줍니다. concat 연산자와 비슷하지만 다른점은 concat 은 순차적으로 합쳐지는 옵저버블 A, B 가 있다면 A옵저버블에서 발생된 모든 이벤트가 방출된 다음 B옵저버블에서 이벤트가 방출됩니다. 하지만 merge는 A와 B옵저버블이 순차적으로 이벤트를 방출하면 그때마다 이벤트를 받을 수 있습니다. 우선 예제 코드를 보겠습니다. let disposeBag = DisposeBag() enum MyError: Error { case error } let subjectA = BehaviorSubject(value: "🍎") let subjectB = BehaviorSubject(value: "🍐") let subjec..
startWith startWith는 옵저버블 앞수분에 다른 항목을 추가합니다. startWith는 가변 파라미터 입니다. let disposeBag = DisposeBag() let emoticons = ["🍎", "🍊", "🥝", "🍉"] Observable.from(emoticons) .startWith("🍇") .startWith("🍈") .startWith("🍌", "🫐", "🍒") .subscribe { print($0) } .disposed(by: disposeBag) 출력 next(🍌) next(🫐) next(🍒) next(🍈) next(🍇) next(🍎) next(🍊) next(🥝) next(🍉) completed 결과를 보면 가장 나중에 추가한 startWith가 가장 먼저 방출되는것을..
scan scan 연산자는 두개의 파라미터를 받아서 변경후 원본 옵저버블로 들어온 이벤트를 가지고 옵저버블을 방출합니다. 첫번째 인자는 초기 값입니다. 두번째 인자는 accumulator : 클로저를 받아 초기값을 대상으로 연산후 옵저버블을 리턴합니다. 이때 연산된 결과는 초기값에 세팅되어 다음 연산에 활용됩니다. let disposeBag = DisposeBag() Observable.range(start: 1, count: 10) .scan(0, accumulator: { print("$0 : \\($0)") print("$1 : \\($1)") return $0 + $1 }) .subscribe{ print($0) } .disposed(by: disposeBag) 출력 $0 : 0 $1 : 1 ne..
flatMap flatMap은 하나의 Observable이 발행하는 항목들을 여러개의 Observable로 변환하고, 항목들의 배출을 차례차례 줄 세워 하나의 Observable로 전달한다 let disposeBag = DisposeBag() let numbers = [1,2,3,4,5,6,7,8,9,10] Observable.from(numbers) .flatMap { number -> Observable in switch number { case 1: return Observable.repeatElement("1️⃣").take(3) case 2: return Observable.repeatElement("2️⃣").take(3) case 3: return Observable.repeatElement..
toArray toArray는 옵저버블이 방출하는 모든 이벤트를 완료시점에 배열로 방출합니다. let disposeBag = DisposeBag() let subject = PublishSubject() subject .toArray() .subscribe{ print($0) } .disposed(by: disposeBag) subject.onNext(1) subject.onNext(2) subject.onNext(3) subject.onNext(4) subject.onNext(5) subject.onCompleted() 출력 success([1, 2, 3, 4, 5]) 옵저버블이 Completed가 되지 않으면 아무것도 방출하지 않습니다. map let disposeBag = DisposeBag() l..