1

以下は、リクエストを作成して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 バインディングでエラーがどのように処理されるか。サーバーから応答がなかった場合、どうすればそれを処理できますか。

どんな助けでも大歓迎です。ありがとうございました

4

0 に答える 0