Bonjour,
je voudrais savoir les bonnes pratiques pour charger les données d'un webservice une seule fois, actuellement je fais comme ça :
est-ce qu'il y a une meilleure façon de faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 private companies: Company[]; getCompanies(): Observable<Company[]> { if (!this.companies) { this.httpClient.get<Company[]>(`${this.baseUrl}api/Companies/GetShortListCompanies/${this.msalService.getAccount().accountIdentifier}`).pipe(share()).subscribe(r => this.companies = r); } return of(this.companies); }
Seconde question, c'est une appli que j'ai repris et il y a souvent ce type de code :
Je n'arrive pas à comprendre à quoi il sert ? pourquoi subscribe sur le behaviorSubject qu'on renvoi ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 private companies$: BehaviorSubject<Company[]> = new BehaviorSubject(undefined); private isCompaniesRequestOnGoing: boolean; getCompanies(): Observable<Company[]> { this.companies$.pipe( take(1) ).subscribe((companies) => { if (!this.isCompaniesRequestOnGoing) { this.isCompaniesRequestOnGoing = true; this.httpClient.get(`${this.baseUrl}api/Companies/GetShortListCompanies/${this.msalService.getAccount().accountIdentifier}`).pipe( take(1) ).subscribe((companies: Company[]) => { console.log(companies); this.companies$.next(companies); }, error => { console.log(error); }, () => { this.isCompaniesRequestOnGoing = false; }); } }); return this.companies$; }
Partager