Я только начал изучать Fetch API: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_FetchJavaScript fetch API. Почему response.json() возвращает объект обещания (вместо JSON)?
Вот фрагмент кода, который я написал, чтобы возиться с ним вокруг:
fetch('http://swapi.co/api/people/1')
.then(function(response) {
var json = response.json();
console.log(json);
// Expected : { "name": "Luke Skywalker","height": "1.72 m", ... }
// Get : Promise {[[PromiseStatus]]: "pending", [[PromiseValue]]: undefined}
});
я ожидал бы получить объект JSON из ответа .json().
Похоже на то, что вы получаете при использовании JSON.parse().
Вместо этого я получаю объект обещания.
Если я увеличить обещание церь показано здесь ...
return response.json().then(function(json) {
// process your JSON further
});
... то он работает: В течение тогдашним метода следующего обещание это выглядит как JSON.
Почему я не могу получить данные JSON в течение() первого обещания?
Может кто-нибудь объяснить, что здесь происходит?
Я бы очень признателен.
То, что большинство людей не в состоянии упомянуть, что, решая, как только вы получите заголовки, вы можете начать делать что-то с этой информацией. Скажите, если вы получите 400 и гигантскую стену текста (не знаете, почему это было бы так), но вы могли бы сразу попробовать резервный вызов или обработать его, а не тратить время на получение всего тела ответа. – 1mike12