Почему вы не можете получить доступ к JSON напрямую из ответа в Fetch API? - PullRequest
1 голос
/ 09 мая 2019

В приведенном ниже примере, почему первая выборка не получает ожидаемый json? Как вы можете получить выборку для обработки нескольких типов контента, таких как application/json и image/jpeg?

// outputs: {}
fetch(url)
.then(function(response){
   alert(JSON.stringify(response.json()));
});

// outputs the expected json
fetch(url)
.then(function(response){ return response.json(); })
.then(function(data){ alert(JSON.stringify(data)) });

1 Ответ

2 голосов
/ 09 мая 2019

response.json() не является синхронным. Он возвращает обещание, пока система выполняет и анализирует JSON.

Резонанс, по которому работает ваш второй пример, заключается в том, что когда вы возвращаете обещание в рамках обещания, внешнее обещание ожидает разрешения внутреннего обещания.

...