2016-12-24 3 views
11

Я вижу, что метод Response.json() используется много, и я сам его использую, но либо я что-то упустил, либо документация для класса Response некорректна.Угловой Response.json() не документирован

Пример:

getCurrentTime() { 
    return this._http.get('http://date.jsontest.com/') 
     .map((res:Response) => res.json()) 
} 

от углового участка на https://angular.io/docs/ts/latest/api/http/index/Response-class.html, я не вижу способа в качестве члена класса Response.

Если .json является не членом класса ответа, может кто-то указать мне в направлении понимания того, как это работает.

Или, если документация неверна, кто-то скажет так.

Заранее спасибо.

ответ

5

Собственно, документация HTTP Client (Process the response object) говорит:

Анализировать в JSON

Это не собственный дизайн угловых в. Угловой HTTP-клиент следует спецификации Fetch для объекта ответа, возвращаемого функцией Fetch. Эта спецификация определяет метод json(), который анализирует тело ответа на объект JavaScript.

Так Angular2 реализует Fetch Specification, которая включает в себя спецификацию для упомянутой Body mixin, Response класса Angular2 является расширение, в том числе метода .json().

Метод json(), при вызове, должен возвращать результат работы с кузовом с JSON.

Как вы можете видеть в ссылке peeskillet, Angular2 реализует все указанные методы смесителя Body, за исключением formData().

13

Я смотрю API Reference for Response, вы увидите, что Response распространяется Body. Если вы попытаетесь найти Body, вы не найдете его, что, вероятно, означает, что оно не является общедоступным. Если вы посмотрите на the source code for Body, вы увидите код для json

/** 
* Attempts to return body as parsed `JSON` object, or raises an exception. 
*/ 
json(): any { 
    if (typeof this._body === 'string') { 
    return JSON.parse(<string>this._body); 
    } 

    if (this._body instanceof ArrayBuffer) { 
    return JSON.parse(this.text()); 
    } 

    return this._body; 
} 

Позвольте мне знать, если вам нужно объяснение источника. Это выглядит довольно самодостаточным для меня.

+0

О, человек. Конечно, это нечто очевидное. Очень признателен. Я новичок в Angular2, поэтому не знаком с документацией. Я удивлен, что API не имеет ссылки для отображения унаследованных методов. – BBaysinger

+0

Возможно, вы также можете объяснить мне, почему мой вопрос отклоняется. Я понимаю, что упускаю из виду что-то, возможно, очевидное, но как это не законный вопрос? – BBaysinger

+0

Я не знаю. У людей есть свои причины. Я не могу предположить, почему. Я лично не видел в этом ничего плохого. Я бы не ответил на вопрос, который я пропустил. –

Смежные вопросы