функция извлечения возврата Promise <pending> - PullRequest
0 голосов
/ 12 февраля 2019

Итак, мой код возвращает Promise, и, поскольку я использую синтаксис then, я не знаю, почему это происходит: - ??

fetch('someurltoAJsonFile.json')
  .then(function(response) {
    console.log(response.json());});

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

response.json () в библиотеке node-fetch также возвращает обещание, вместо этого попробуйте

fetch('someurltoAJsonFile.json')
  .then(response => response.json())
  .then(data => {
    console.log(data)
  });

, вы можете найти более подробную информацию об этом здесь

РЕДАКТИРОВАТЬ:

Кажется, что возвращенный ответ не был в допустимом JSON, поэтому для полноты здесь приведен код для текста

fetch('someurltoAJsonFile.json')
  .then(response => response.text())
  .then(data => {
    console.log(data)
  });
0 голосов
/ 12 февраля 2019

Функция, заданная как параметр then, будет выполняться асинхронно (когда-нибудь в будущем, когда ваш сервер вернет ответ), но then сам вернет Promise немедленно (синхронно) своим определением

Если вы хотите, чтобы код выглядел менее вложенным (скорее как синхронный код), вы можете использовать await, но вы должны непрозрачный весь код с асинхронной функцией

async function load() 
{
  let response = await fetch('someurltoAJsonFile.json');
  let data = await response.json();
  console.log(data);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...