Dieses ist von Winkel 2 http Führung für app/toh/hero.service.ts:In Angular 2 was macht response.json()?
...
@Injectable()
export class HeroService {
private heroesUrl = 'app/heroes'; // URL to web API
constructor (private http: Http) {}
getHeroes(): Observable<Hero[]> {
return this.http.get(this.heroesUrl)
.map(this.extractData)
.catch(this.handleError);
}
private extractData(res: Response) {
let body = res.json();
return body.data || { };
}
private handleError (error: Response | any) {
...
}
}
verweisen auf die Linie lassen body = res.json(); Von API konnte ich keine json() -Methode auf Response-Objekt finden. Von Antwortquelle ich das finde:
export var Body = (function() {
function Body() {
}
/**
* Attempts to return body as parsed `JSON` object, or raises an exception.
*/
Body.prototype.json = function() {
if (isString(this._body)) {
return Json.parse(this._body);
}
if (this._body instanceof ArrayBuffer) {
return Json.parse(this.text());
}
return this._body;
};
Wie diese 2 verwandt sind?
Unklar ist? Die Methode '.json' versucht, den Antworttext in JS-Objekte für Sie zu analysieren. Es wird [hier] (https://angular.io/docs/ts/latest/guide/server-communication.html#!#parse-to-json) erwähnt, dass * "Der Angular HTTP-Client folgt der Fetch-Spezifikation" *. – jonrsharpe
Es gibt die geparsten Daten der Antwort zurück ... – Maxime
@johnsharpe, Wahrscheinlich habe ich meine Frage nicht richtig formuliert. Ich wollte wissen, wo in 'Response' Quellcode kann ich json() -Methode finden. Ich finde die Methode im 'Body' Quellcode. Ich beantworte meine eigene Frage, bitte lesen Sie sie durch, und wenn Sie ein Missverständnis von mir feststellen, weisen Sie bitte darauf hin. –