以下は、リクエストを作成してUI要素にバインドするコードです
func signUpService(_ signUpButtonTap: Observable<Void>, _ userAndPassword: Observable<(String, String)>) -> Observable<Response> {
return signUpButtonTap
.withLatestFrom(userAndPassword)
.flatMapLatest{
input -> Observable<Response> in
return Observable.create { observer in
let userData = Creator()
userData?.username = input.0
userData?.password = input.1
return provider.request(.signUp(userData!)).filter(statusCode: 201).subscribe{ event -> Void in
switch event {
case .next(let response):
observer.onNext(response)
print("Success response", response)
case .error(let error):
let moyaError: MoyaError? = error as? MoyaError
let response: Response? = moyaError?.response
let statusCode: Int? = response?.statusCode
print("Error response", response?.statusCode)
observer.onError(AuthenticationError.server)
default:
break
}
}
}
}.observeOn(MainScheduler.instance)
}
私の見解では、私は次のことを行っています
self.viewModel.signedUp?.bind{response in
self.displayPopUpForSuccessfulLogin()
}.addDisposableTo(disposeBag)
}
エラー ブロックにヒットするたびに、アプリがクラッシュします。バインディングエラーと表示されます。エラーを UI 要素にバインドできません。
Rxswift バインディングでエラーがどのように処理されるか。サーバーから応答がなかった場合、どうすればそれを処理できますか。
どんな助けでも大歓迎です。ありがとうございました