Witam.
Wybaczcie nie wiedziałem jak precyzyjnie nazwać temat. Pracuje od niedawna z Angularem i mam taki problem, że strzelam GET do WebApi controllera, a strzał jest asynchroniczny przez co nie mogę wykorzystać danych, które zwraca controller, od razu poza funkcją. Poniżej wklejam kod, aby dokładnie zobrazować problem:
Component, z którego wywołuje funkcję mojego serwisu angularowego:
slowniki: any;
constructor(private _mojService: MojService) { }
ngOnInit(): void {
this._mojService.pobierzSlowniki()
.subscribe(slowniki=> {
this.slowniki= slowniki;
console.log("Tu widac response:" + slowniki);
});
console.log("Tu nie widac response:" + this.slowniki);
}
operacjaNaSlownikach() {
// zrób coś na this.slowniki, slowniki są undefined
}
MojService wyglada tak:
constructor(private _http: Http) { }
pobierzSlownikii(): Observable<any> {
return this._http.get(this._serviceUrl + "PobierzSlowniki")
.map((response: Response) => response.json());
}
Potrzebuję operować na tych danych poza funkcją, więc nie mogę czekać na odpowiedź żądania. Z tego co się zorientowałem nie można wywoływać GET synchronicznie w Angularze. Ustawianie TimeOut na odpalenie pozostałych funkcji też nie jest dobrym pomysłem. Nie wiem jak to poprawnie rozwiązać. To jest prosty przykład, jednak podobne funkcję występują w wielu miejscach w kodzie.
Pozdrawiam serdecznie ;)