Как вытащить данные из Paginated JSON - PullRequest
0 голосов
/ 13 марта 2020

Я сказал, что 300 пунктов 10 показывают на странице. Страница загружает данные JSON и ограничена 10 (это нельзя изменить)

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

url.com/api/some-name?page=1 etc

В идеале сценарий будет использовать вышеуказанный URL-адрес как правило и прокручивать с шагом 1, пока не будут заполнены все 10 на каждой странице.

Можно ли это сделать? Как бы я go об этом? Любой совет или помощь в этом помогут мне в изучении и изучении методов, которые предлагают люди.

const getInfo = async function(pageNo) {
const jsonUrl = "https://website.com/api/some-title";

  let actualUrl = jsonUrl + `?page=${pageNo}`;
  let jsonResults = await fetch(actualUrl).then(response => {
    return response.json();
  });
  return jsonResults;
};
const getEntireList = async function(pageNo) {
  const results = await getInfo(pageNo);
  console.log("Retreiving data from API for page:" + pageNo);
  if (results.length > 0) {
    return results.concat(await getEntireList(pageNo));
  } else {
    return results;
  }
};
(async () => {
  const entireList = await getEntireList();
  console.log(entireList);
})();

1 Ответ

0 голосов
/ 13 марта 2020

Я вижу некоторые проблемы в вашем коде.

  1. первоначальный вызов getEntireList () должен быть инициализирован с индексом первой страницы, например, const entireList = await getEntireList(1);
  2. номер страницы нужно будет увеличить в какой-то момент.
  3. results.concat(), вероятно, не даст желаемого эффекта. json() возвращает объект, список или значение (в зависимости от сервера), и results будет одним из этих типов. concat() работает на струнах; так что вызов json() (в лучшем случае) избыточен.
...