2017-07-18 1 views
0

Hallo alle, die dies gelesen haben. Ich arbeite an einer Ionic2 App, wo der Benutzer dem Server einige Bilddaten senden wird, und wenn der Server diese Daten empfängt, zeige ich eine Bestätigung an, aber wenn es Fehler gibt, als dass ich zeige, dass es Fehler gab.Typescript - Ionic 2 - MapSubscriber-Fehler, nicht hilfreiche Fehlerdaten

Das Problem ist, dass beim Senden der Bilddaten Ionic/Typescript sagt mir gab es einen Fehler, aber beim Überprüfen des Servers werden die Bilddaten in ihrer Gesamtheit empfangen, und das Bild zeigt gut.

Es ist jedoch immer noch sehr wichtig für mich, über den Client zu wissen, dass die Informationen korrekt empfangen wurden, damit ich sie dem Benutzer anzeigen kann.

Der entsprechende Abschnitt des Codes:

return new Promise((resolve, reject)=>{ 
    this.http.get(url).map(res=>res.json()).subscribe(data=>{ 
     console.log('InvoiceHttp.send() success!'); 
     resolve(data); 
    }, err=>{ 
     console.log('Http error on InvoiceHttp.send()'); 
     console.error(err); 
    }); 
}); 

Nun, wenn ich diese Funktion ich die Konsole Protokollmeldung und die Fehlerausgabe erhalten laufen, aber der Fehlerausgang ist dies:

ERROR: {"line":78889,"column":39,"sourceURL":"file:///var/containers/Bundle/Application/601C2294-78EA-48A2-9BAC-B53C04ADD458/MyApp.app/www/build/main.js"} 

die, wenn Ich schaue mir diese Zeile an, die mich zu der MapSubscriber-Definition führt, was mich zu der Annahme verleitet, dass dies ein Fehler bei .subscribe() ist.

Mein erster Gedanke war, dass die Serverantwort vielleicht nicht in einem richtigen JSON-Format war, aber nachdem die Antwort sowohl leer als auch {} geändert wurde, bleibt der Fehler bestehen und ich habe keine Ideen mehr diesen Fehler werfen.

Vielen Dank für alle Antworten.

+0

Nur eine Frage beiseite: Warum nicht 'toPromise' Operator verwenden? Z.B. 'this.http.get (url) .map (r => r.json()). toPromise(). catch (err => log (err))'? – embarq

+0

Kurze Antwort: Ich wusste es nicht, habe es aber geändert. Es gab mir ein bisschen mehr eine ausführliche Antwort, aber nichts, was mir wirklich hilft, dies zu debuggen. – Twistingsun

+0

Können Sie diese aktualisierte Antwort bereitstellen? – embarq

Antwort

0

Alles, was ich tun musste, war json() auf resp resp. Karte wurde verrückt, dass ich versuchte, eine leere Antwort in JSON offenbar umzuwandeln.