2017-02-02 1 views
2

Ich versuche, eine HTTP-Anfrage und danach das Antwortobjekt oder bool. Es spielt keine Rolle, welcher. Aber ich kann den Fehler nicht verstehen. Ich habe eine HandleError-Funktion, aber es funktioniert nicht wirklich.Wie bekomme ich Statuscode in http Anfrage in Angular2

Mein Code sieht jetzt so aus.

Der Service

updateProduct(product: Product): Promise<number> { 
     return this.http.put('/api/products/1' + product.id,product) 
      .toPromise() 
      .then(response => response.status) 
      .catch(this.handleError); 
    } 

    private handleError(error: any): Promise<any> { 
     //console.error('An error occurred', error); // for demo purposes only 
     return Promise.reject(error.message || error); 
    } 

Die Speicherfunktion

onSave(): void { 
    this.productService.updateProduct(this.product) 
     .then(() => this.goBack()) 
     .catch(er => console.log(er)); 
} 

Wie kann ich diese Arbeit bekommen?

+0

so sind Sie '4xx' Statuscode als Antwort bekommen? –

+0

Was meinst du mit "funktioniert nicht wirklich." Denken Sie daran, Sie können den gleichen Handler sowohl für den Erfolg als auch für den Fehler verwenden. Sie senden es nur verschiedene Informationen basierend auf welche Antwort (Erfolg oder Misserfolg) erhalten Sie. In diesem Handler können Sie basierend auf diesen Informationen festlegen, was Sie wollen. Wenn der Handler also "error" bekommt, gib das zurück, andernfalls gib das zurück. –

Antwort

3

Was ich sehe, du Rückkehr error.message wenn es

return Promise.reject(error.message || error);

Objekt Return ganze error existiert, anstatt nur message, wenn Sie mit dem manipulieren wollen.

return Promise.reject(error);

+1

Vielen Dank! – apero

Verwandte Themen