Представьте профиль пользователя, который позволяет редактировать полей как имя, фамилии, возраст и avatarImage. Когда пользователь нажимает Save
, запросы отправляются для каждого измененного значения.RxSwift: Zip Наблюдаемые только если требования будут выполнены
Теперь подумайте о функциях с подписями, как те:
func rx_updateUserName(name: String) -> Observable<UpdateUserNameResponse>
func rx_updateSurname(surname: String) -> Observable<UpdateSurnameResponse>
func rx_updateAge(age: Int) -> Observable<UpdateAgeResponse>
Обычно мы просто zip
эти запросы, как это:
let nameReqObservable = rx_updateUserName("Gandalf")
let surnameReqObservable = rx_updateSurname("The White")
let ageReqObservable = rx_updateAge(123)
let zippedRequests = Observable.zip(nameReqObservable, surnameReqObservable, ageReqObservable,
resultSelector: { (userNameResponse, surnameResponse, areResponse) in
return (userNameResponse, surnameResponse, areResponse)
}).subscribeNext(...)
Что я должен делать, когда я только хочу, чтобы выполнить запросы для значений, которые изменились?
Вы говорите, что когда вы удаляете спасение, у вас есть три поля, каждое из которых генерирует одно значение? – Enigmativity
Когда сбой ударил, я хочу предварительно выбрать запросы, которые должны быть сделаны, на основе проверок, изменились ли имя, фамилия или возраст. –
Это не то, что я спросил. Я хотел знать, если, когда вы нажмете, у вас есть три наблюдаемых, каждый из которых производит одно значение? – Enigmativity