Witam.
Domyślam się, że wiąże się to z asynchronicznością, ale przetrzepałem parę forów i google i jakoś jednoznacznej odpowiedzi nie potrafię znaleźć.
Mam serwis
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class APIService {
_baseUrl = 'http://192.168.0.108:9990/';
constructor(private _http: HttpClient) { }
public UserAuthentication2(email: string, password: string) {
return this._http.post(this._baseUrl + 'api/v1.0/auth/userauthentication', { email: email, password: password, companyId: 0 });
}
}
API w tym "zapytaniu" zwraca dane użytkownika wraz z jego konfiguracją. Mam model, ale nie będę go tutaj wrzucał w całości bo jest spory.
export class AuthenticationResponse {
config: Config;
user: User;
token: string;
company: Company;
}
export class User {
id: number;
name: string;
firstname: string;
lastname: string;
email: string;
password: string;
roleID: number;
avatar: string;
isActive: boolean;
}
//...
Czy .subscribe()
powinno być po stronie serwisu? Mam wrażenie, że subskrybowanie po stronie komponentu robi bałagan w kodzie, a asynchroniczność kompletnie nie pomaga, ponieważ jeden .subscribe()
się jeszcze nie wykona do końca, a leci do następnego. Czasem subskrybowane dane są wymagane, aby zasubskrybować następne i tutaj też nie wiem co mam zrobić. W poprzednich swoich projektach mam taki bałagan z tego powodu, że teraz chciałbym to zrobić dobrze.