가까운 영화관의 가까운 날짜의 받아오려면 두 Observable 의 값이 필요하다
combineLatest
를 사용하면 두 Observable 을 사용하고, flatMap 사용했을 때 파라미터도 두개 받을 수 있다
- 이후 가까운 영화관, 가까운 날짜로 API Call
Observable
.combineLatest(tempNearCinemas, tempCinemaCalendar)
.flatMap {
guard let nearestCinema = $0.0.first else {
return Observable<CinemaSchedule>.empty()
}
let date = $0.1.businessDays.first ?? "2024-05-07"
return CinemaService.shared.fetchCinemaSchedule(cinema: nearestCinema, date: date)
.take(1)
}
.subscribe(onNext: tempCinemaSchedule.onNext(_:))
.disposed(by: disposeBag)