일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- init?
- typeorm
- graphql
- Creating Operators
- NullObject
- dismiss
- NavigationLink
- operator
- URL(string:)
- SwiftUI
- subject
- swift6
- vim
- @State
- RFC1738/1808
- @Binding
- ios14
- Operater
- RxCocoa
- init
- nestjs
- nonisolated
- Bug
- Xcode
- Operators
- SWIFT
- @Environment
- IOS
- RxSwift
- @EnvironmentObject
- Today
- Total
목록Development/RxSwift (36)
Tunko Development Diary
withLatestFrom withLatestFrom 은 트리거옵저버블.withLatestFrom(데이터옵저버블) 트리거옵저버블.withLatestFrom(데이터옵저버블) 형태로 사용됩니다. let disposeBag = DisposeBag() enum TunkoError: Error { case error } let 트리거서브젝트 = PublishSubject() let 데이터서브젝트 = PublishSubject() 트리거서브젝트.withLatestFrom(데이터서브젝트) .subscribe{ print($0) } .disposed(by: disposeBag) 데이터서브젝트.onNext("데이터") 트리거서브젝트.onNext(()) 트리거서브젝트.onNext(()) 데이터서브젝트.onCompleted..
combineLatest combineLastest는 2개부터 8개까지 옵저버블을 파라미터로 받고, 클로저를 리턴합니다. combineLastest에서 중요한건 이벤트가 방출되는 시점입니다. let disposeBag = DisposeBag() let emoticonSubject = PublishSubject() let textSubject = PublishSubject() Observable.combineLatest(emoticonSubject, textSubject) { emoticon, text -> String in return "\\(emoticon) : \\(text)" } .subscribe{ print($0)} .disposed(by: disposeBag) emoticonSubject.on..
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..