name、surname、age、avatarImageなどのフィールドを編集できるユーザー プロファイルを想像してみてください。ユーザーが をクリックするSave
と、変更された値ごとにリクエストが送信されます。
次のようなシグネチャを持つ関数を考えてみてください。
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(...)
変更された値のリクエストのみを実行したい場合はどうすればよいですか?