これはAPP/TOH/hero.service.tsための角度2 HTTPガイドからのものである:Angular 2では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) {
...
}
}
体は= res.json(LET線を参照してください)。 APIから、Responseオブジェクトに対してjson()メソッドが見つかりませんでした。 レスポンスソースから私はこれを見つけます:
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;
};
これらはどのように関連していますか?
不明だ何? '.json'メソッドはレスポンスボディをJSオブジェクトにパースしてあなたのためにしようとします。 *「Angular HTTPクライアントはFetch仕様に準拠しています」と記載されています(https://angular.io/docs/ts/latest/guide/server-communication.html#!#parse-to-json)。 – jonrsharpe
レスポンスの解析データを返します。 – Maxime
@johnsharpe、おそらく私の質問に正しく言及していません。「Response」ソースコードのどこにjson()メソッドがあるか知りたいと思います。私は 'Body'のソースコードでこのメソッドを見つけました。私は自分の質問に答えています。それを読んでください。私のところで何か誤解がある場合は、指摘してください。 –