CombineLatest 오퍼레이터 어디에다가 쓸 수 있을까?
ID, PASSWORD 를 사용자로부터 입력받아서
CombineLatest operator 도움을 받아
하나의 Observable sequence 로 합친다.
CombineLatest
2 개의 Observable에서 방출된 시퀀스에서 최신 이벤트를 결합
let observable1 = userNameTextField.rx.text.orEmpty
let observable2 = passwordTextField.rx.text.orEmpty
let observableCombined = Observable.combineLatest(observable1, observable2)
loginBtn.rx.tap
.withLatestFrom(observableCombined)
.subscribe(onNext: {
self.login(user: $0, pass: $1)
})
.disposed(by: disposeBag)
위 코드를 간단하게 줄이면 다음과 같다.
loginBtn.rx.tap
.withLatestFrom(Observable.combineLatest(userNameTextField.rx.text.orEmpty, passwordTextField.rx.text.orEmpty))
.subscribe(onNext: {
self.login(user: $0, pass: $1)
})
.disposed(by: disposeBag)
사용자로부터 탭 이벤트를 받으면,
컴바인된 Observable sequence 로부터 방출된 최신의 이벤트를 로그인 메서드에 전달
'iOS > RxSwift' 카테고리의 다른 글
RxSwift 간단 핵심 정리 (0) | 2023.02.18 |
---|---|
RxSwift 제일 간단한 테이블뷰 만들기 (0) | 2023.02.14 |
RxSwift) RxCocoa 로 TableView Delegate 처리 (0) | 2023.01.13 |
RxSwift 4시간만에 끝내기(곰튀김님 강의 듣고 정리) [시즌2] (0) | 2023.01.12 |
RxSwift 4시간만에 끝내기(곰튀김님 강의 듣고 정리) [시즌0] (0) | 2023.01.09 |