J'essaie donc de changer la variable 'succès' dans le rappel de la fonction de succès après m'être abonné à l'observable. J'ai débogué avec le débogueur Chrome après avoir écrit un test pour celui-ci et ne pas retourner vrai sur un POST réussi.Angular Observables Modifier la variable de fonction locale à partir de l'abonnement onSuccess => {}
Le test passe dans la fonction réponse => {} mais après avoir passé par "réussite = vrai", il est toujours faux. Puisque je vais le faire pour diverses autres fonctions, je préférerais avoir une longue liste de variables de classe afin de pouvoir y faire référence avec "ceci" comme je l'ai vu dans divers autres exemples. Y a-t-il un moyen de rendre le succès vrai?
public login(username: string, password: string): boolean {
let success = false;
this.http.post<LoginResponse>('/api/login_check', {username: username, password: password}).subscribe(
response => {
success = true;
this.currentUser = new User(response.user);
sessionStorage.setItem('userJWT', response.token);
},
error => {
console.log('Login failed - ' + error);
}
);
return success;
}
parce que la réponse est variable de succès asynchrone et retour de méthode avant http. poster. Parce que la connexion est synchrone et à l'intérieur vous appelez la fonction asynchrone. Vous avez besoin d'une connexion retour observable et où vous appelez login vous devez vous abonner à cette méthode pour retourner le résultat – daremachine