Jetzt versuche ich Angular2 Http Prozess.Angular abonnieren mit Verarbeitungsfehler
Ich weiß, wie unten Funktion:
sendGet(url) {
return this._http.get(url)
.map(res => res.json());
}
test(url) {
this.sendGet(url)
.subscribe(
data => {
processing data...
},
error => {
processing error...
},
() => {
other...
}
);
}
Aber ich habe viele Test() Funktion ohne "Fehler => ...", wie unten
sendGet(url) {
return this._http.get(url)
.map(res => res.json());
}
test(url) {
this.sendGet(url)
.subscribe(
data => {
processing data...
}
);
}
Jetzt verwendet Ich habe Fehler zu verarbeiten alle http erhalten Prozess.
Und ich denke hinzufügen 'Fehler => ...' in jeder test() -Funktion ist keine gute Methode.
Ich hoffe, es gibt vielleicht gute Methode für die Verarbeitung aller http "Fehler" durch nur eine Korrektur in sendGet() -Funktion, aber ich weiß es nicht.
Bitte lassen Sie mich wissen, wie kann ich tun?
Sie könnten Ihr Observable in eine Promise und dann '.catch()' konvertieren, um alle Fehler zu erfassen, jedoch hätten Sie die Kette '.catch()' für alle Instanzen von test(). Da das Observable nichts tut, bis Sie es abonnieren, ist die einzige Möglichkeit, einen eingehenden Fehler zu fangen, der Funktionsfehler-Handler, den Sie an '.subscribe()' selbst übergeben, also glaube ich nicht, dass es einen Weg gibt, die Fehler darin zu verwalten 'sendGet()'. –
Es gibt derzeit keine andere Möglichkeit als den Http-Dienst in Ihren eigenen Dienst zu integrieren. Aber die nächste Version von Angular (die momentan in RC ist) wird einen brandneuen HttpClient-Dienst haben, der einfacher zu testen, zu benutzen ist und Unterstützung für Http-Interzeptoren bietet. –