Ich habe eine if-Anweisung wie diese implementiert
if (this.service.check() ) {
return true;
}
else {
}
diese if-Bedingung wartet auf eine Antwort vom Backend. Bevor das Observable ausgeführt wird, geht es in die else-Anweisung und beendet die Bedingung, ohne die if-Bedingung beim Start zu überprüfen.
dies ist meine beobachtbare Methode, um die Daten vom Backend abzurufen
public check(){
this.getActorRole().subscribe(
(resp => {
if (resp == true){
return true
}
}),
(error => {
console.log(error);
})
);
}
}
Wie soll die Bedingung warten, bis sie die Antwort vom Backend erhält?
Sie können nicht warten, bis ein Observable
oder Promise
abgeschlossen ist. Sie können es nur abonnieren, um benachrichtigt zu werden, wenn es ein Ereignis abschließt oder auslöst.
public check(){
return this.getActorRole() // <<<=== add return
.map(resp => {
if (resp == true){
return true
}
);
}
}
dann kannst du machen
this.service.check().subscribe(value => {
if (value) {
return true;
}
else {
}
}
aber wenn der Aufrufer dieses Codes auch vom Rückgabewert abhängt, müssen Sie dies erneut tun
this.service.check()
.map(value => {
if (value) {
return true;
}
else {
}
}
und dann die subscribe()
, wo Sie diesen Code aufrufen