atteignant Je suis un débutant à RxSwift et je suis en train de mettre en œuvre connexion fonctionnalité facebook, et voici ce que je fais:Bouton avec abonnement rx.tap terminé
loginButton.rx.tap
.debug("login tapped")
.flatMap { [weak self]()->Observable<AccessToken> in
guard let strongSelf = self else {
throw NetworkError.requestCancelled
}
return strongSelf.viewModel.loginFacebook(from: strongSelf)
}
.flatMap { [weak self] accessToken->Observable<(accessToken: String, userId: String)> in
guard let strongSelf = self else {
throw NetworkError.requestCancelled
}
return strongSelf.viewModel.requestUserInfo(token: accessToken)
}
.flatMap { [weak self] (accessToken: String, userId: String)->Observable<LoginResult> in
guard let strongSelf = self else {
throw NetworkError.requestCancelled
}
return strongSelf.viewModel.authenticate(accessToken: accessToken, userId: userId)
}
.catchError({ error -> Observable<LoginResult> in
return Observable.just(LoginResult.failure(error: error as! NetworkError))
})
.subscribe (onNext:{ [weak self] result in
guard let strongSelf = self else {
return
}
switch result {
case .success:
// do something with success
}
case .failure(let error):
// do something with error
}
}, onCompleted: {
print("rx.tap completed")
})
.disposed(by: disposeBag)
La chose est quand je tape bouton de connexion puis fermez la fenêtre de connexion de Facebook qui apparaît, mon abonnement à rx.tap
atteint onCompleted
, alors quand j'essaie d'appuyer à nouveau sur le bouton, rien ne se passe. Comment dois-je gérer ce cas? Toute suggestion pourrait aider.