Emploi de throwError operator
Hello,
Je souhaite afficher dans mon template le message d'erreur notifié dans l'observable de l'operateur throwError mais je ne sais pas comment m'y prendre
Voici un code d'exemple : j'ai une requête http.get() qui émet un tableau du modèle 'Person' ou bien un message d'erreur
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
// model-----------------------------------------------------------------------------
export class Person {
id: number
name: string
}
// Dans le service-----------------------------------------------------------------
handleError(httpError: HttpErrorResponse): Observable<never> {
// L'erreur provient du client
if (httpError.error instanceof ErrorEvent) {
console.error(`Une erreur est survenue : ${httpError.error.message}`);
} else {
// Le back-end renvoie un code d'erreur,
console.error(`code d'erreur retourné : ${httpError.status}, corps de réponse ${httpError.error}`);
}
// Message d'erreur destiné à l'utilisateur à afficher dans le template
return throwError('Une erreur est survenue, veuillez réessayer ultérieurement.');
}
getListPersonService {
return this.http.get<Person[]>(`${this.baseURL}people`, { headers: this.headerOptions })
.pipe(
catchError(this.handleError)
);
}
//Dans le TS component---------------------------------------------------------------------
person: Person[]
// Souscription : comment récupérer le message d'erreur quand ça tourne mal ?
getListPerson(): void {
this.apiService.getListPersonService()
.subscribe((value) => {
this.person = value;
})
} |
Merci !