Fetch не получает большие ответы

Я пытаюсь получить в react-native(js), но ответ много раз искажается, особенно для больших данных!

Ответ представляет собой массив, для размера массива ‹ 5 выборка обычно работает, для размера массива › 20 выборка почти никогда не работает, что приводит к следующей ошибке:

[Отклонение необработанного обещания: SyntaxError: Ошибка синтаксического анализа JSON: Ожидается ']']

Это код, используемый для получения:

        fetch(url)
        .then(response => {
            if(response.status!==200){alert('Something went wrong, please try again later');return null}
            return response.json()
        })
        .then(response => {
            if (response == null){return}
            console.log(response)
        })

Ошибка возникает в строке return response.json().

Пожалуйста помоги! Спасибо.


person guytiklu    schedule 28.06.2021    source источник


Ответы (1)


Возможно, вам придется проверить json, который вы отправляете обратно с сервера. Ошибка возникает из-за неправильного формата json. Однако это также может быть связано с тем, как вы форматируете свою выборку.

Вот некоторый код для получения json из API. Это довольно хороший пример из статьи Мэтта Гонта, https://developers.google.com/web/updates/2015/03/introduction-to-fetch#:%7E:text=The%20response.%20of%20a%20fetch,%20stream%20будет%20происходить%20асинхронно.

fetch('./api/some.json')
  .then(
    function(response) {
      if (response.status !== 200) {
        console.log('Looks like there was a problem. Status Code: ' +
          response.status);
        return;
      }

      // Examine the text in the response
      response.json().then(function(data) {
        console.log(data);
      });
    }
  )
  .catch(function(err) {
    console.log('Fetch Error :-S', err);
  });
person Evan Schweitzer    schedule 28.06.2021