Ich arbeite mit kantigem 4.2.4/5.4.2 RxJS, und ich versuche, eine Service-Methode zu verwenden, um einige Daten abzurufen und diese Daten an eine Eigenschaft in meiner Komponente zuweisen:Wie kann sichergestellt werden, dass eine Funktion nach der Ausführung eines asynchronen Blocks zurückkehrt?
Komponente:
ngOnInit() {
this.componentProperty = this.myService.serviceMethod(someParameter);
}
Service:
serviceMethod(someParameter: someType) {
let returnValue: anotherType;
// getting the Observable involves using "someParameter"
// (the code was simplified for the sake of clarity)
someObservable.subscribe(
data => { returnValue = data; }
);
return returnValue;
}
Das Problem ist, dass die Funktion innerhalb subscribe()
asynchron ausgeführt wird, so dass die Methode immer undefined
zurückgibt.
Irgendwelche Gedanken, wie man das löst? Eine spezielle RxJS-Methode? Irgendein schickes ES.next Schlüsselwort, das mir nicht bekannt ist? Ein weiterer logischer Entwurf (der den SoC ordentlich und sauber hält)?
Vielen Dank im Voraus!