J'ai implémenté une instruction if comme celle-ci
if (this.service.check() ) {
return true;
}
else {
}
cette condition si attend une réponse du backend. Mais avant que l'observable ne soit exécuté, il entre dans l'instruction else et termine la condition sans vérifier la condition if au début.
c'est ma méthode observable pour obtenir les données du backend
public check(){
this.getActorRole().subscribe(
(resp => {
if (resp == true){
return true
}
}),
(error => {
console.log(error);
})
);
}
}
Alors, comment faire en sorte que la condition attende d’obtenir la réponse du serveur
Vous ne pouvez pas attendre que Observable
ou Promise
soit terminé. Vous ne pouvez vous y abonner que pour être averti lorsqu'il termine ou émet un événement.
public check(){
return this.getActorRole() // <<<=== add return
.map(resp => {
if (resp == true){
return true
}
);
}
}
alors vous pouvez faire
this.service.check().subscribe(value => {
if (value) {
return true;
}
else {
}
}
mais si l'appelant de ce code dépend également de la valeur de retour, vous devez à nouveau
this.service.check()
.map(value => {
if (value) {
return true;
}
else {
}
}
puis faites la subscribe()
où vous appelez ce code