J'ai mis à jour mon projet Angular à Angular 6 et je ne sais pas comment faire des requêtes HTTP get Thats comment je l'ai fait dans Angular 5:
get(chessId: string): Observable<string> {
this.loadingPanelService.text = 'Loading...';
this.loadingPanelService.isLoading = true;
const url = `${this.apiPathService.getbaseUrl()}api/chess/${chessId}/rating`;
return this.http.get<string>(url)
.catch((error) => {
console.error('API error: ', error);
this.loadingPanelService.isLoading = false;
this.notificationService.showErrorMessage(error.message);
return Observable.of(null);
})
.share()
.finally(() => {
this.loadingPanelService.isLoading = false;
});
Et voici comment je le fais maintenant. Est-ce ainsi que cela est supposé se faire dans Angular 6?
...
return this.http.get<string>(url)
.pipe(
catchError(this.handleError),
share(),
finalize(() =>{this.loadingPanelService.isLoading = false})
);
private handleError(error: HttpErrorResponse) {
console.error('API error: ', error);
this.loadingPanelService.isLoading = false;
this.notificationService.showErrorMessage(error.message);
// return an observable with a user-facing error message
return throwError(
'Something bad happened; please try again later.');
};
La façon dont vous appelez http dans l’angle 6 est correcte.Bien que je partage l’extrait de code, gardez simplement à l’esprit que nous pouvons transmettre le nombre d’opérateurs dans le tuyau et tous les objets retournés. sortie dans Observable.
import { Http, Response } from '@angular/
import { throwError } from 'rxjs';
import { map, catchError } from 'rxjs/operators';
.....
return this.http.get(url)
.pipe(map((response : Response) => {
return response.json();
}), catchError((error: Response) =>{
this.loadingPanelService.isLoading = false;
this.notificationService.showErrorMessage(error.message);
return throwError('Something went wrong');
}), finalize(() => {
this.loadingPanelService.isLoading = false;
}));
Vous pouvez également utiliser HttpClient.Si vous souhaitez répondre pour httpClient, merci de poster votre question séparément.
J'espère que ceci vous aidera
Ceci est un exemple, mais vous pouvez obtenir plus d'informations dans https://angular.io/guide/http :
getByEmail(email): Observable<void> {
const endpoint = API_URL + `/api/datos_privados/email/${email}`;
return this.httpClient.get<void>(endpoint,
{
headers: new HttpHeaders()
.set('Accept', 'aplication/json')
});
}