2016-12-29 5 views
1

Total neu zu eckigen 2 und Probleme mit der Erfassung der Ergebnisse von http-Aufrufe. Die Anrufe sind einfach und geben nur json mit einem Erfolg/fail und einer Nachricht zurück. Ich habe begonnen, Versprechungen für diese Anrufe zu verwenden und kann die Ergebnisse im Browser anzeigen, aber kann nicht protokollieren oder warnt mit den Ergebnissen. Lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.Ergebnisse von http Aufruf in Winkel 2

Service:

deleteTsUser(params){ 
    var url = this.userDeleteUrl + '?' + params.toString(); 

    return this.http.get(url) 
     .toPromise() 
     .then(this.extractData) 
     .catch(this.handleError); 
} 

Komponente:

var result = this._tsUserService.deleteTsUser(params) 
    .then(
    r => { 
     this.result.result = r.result, 
     this.result.messages = r.messages 
    } 
    ); 

console.log('RES: ' + this.result.result) 

Vorlage:

{{ result.result }} :: {{ result.messages }} 

Ergebnisanzeige ordnungsgemäß in Vorlage, aber das console.log Nachricht meldet sich nur "Res:". ..why funktioniert das nicht? Ich vermisse etwas wirklich Grundlegendes, oder? Thx in adv.

+0

Mögliche Duplikat [Wie kann ich die Antwort von einem asynchronen Aufruf zurückkehren?] (Http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-von-einem-asynchronen-Anruf) –

Antwort

2

Denn:

var result = this._tsUserService.deleteTsUser(params) 
    .then(
    r => { 
     this.result.result = r.result, 
     this.result.messages = r.messages 
    } 
    ); 

ist ein asynchroner Betrieb. Das Ergebnis wird innerhalb des Rückrufs then bereit sein, wenn Ihre -Methode abgeschlossen ist.

var result = this._tsUserService.deleteTsUser(params) 
    .then(
    r => { 
     this.result.result = r.result; 
     this.result.messages = r.messages; 
     console.log('RES: ' + this.result.result); 
    } 
    ); 

wird das Ergebnis protokollieren.

Ich würde Ihnen empfehlen zu lesen: auf dem Asynchron-Verhalten von Javascript How do I return the response from an asynchronous call?

+0

Das macht total Sinn. Ich habe den Code angepasst und es funktioniert wie beschrieben. Vielen Dank für Ihre schnelle Antwort! –

+0

@MichaelMittelman froh, dass ich helfen konnte! – echonax

Verwandte Themen