[REACTJS] 어떻게 여러 페이지를 통해 데이터를 가져?
REACTJS어떻게 여러 페이지를 통해 데이터를 가져?
해결법
-
1.가능한 솔루션 년 - 아이디어는 배열에 각 통화에서 약속을 누르면, 다음, 첫 번째 페이지 수를 얻을 API 호출의 적절한 수를 확인하는 것입니다. 우리는 그 해결에 대한 모든 약속 기다린 반환 된 데이터에 뭔가.
가능한 솔루션 년 - 아이디어는 배열에 각 통화에서 약속을 누르면, 다음, 첫 번째 페이지 수를 얻을 API 호출의 적절한 수를 확인하는 것입니다. 우리는 그 해결에 대한 모든 약속 기다린 반환 된 데이터에 뭔가.
function fetchMetaData() { let pagesRequired = 0; fetch('apiUrlToGetPageNumber') .then(resp = > { const apiPromises = []; pagesRequired = resp.data.pagesRequired; for (let i=pagesRequired; i>0;i--) { apiPromises.push(fetch('apiUrlToSpecificPage?page = ' + i)); } Promise.all(apiPromises) .then(responses => { const processedResponses = []; responses.map(response => { processedResponses.push(response); } // do something with processedResponses here }); } }
-
2.여기서 비동기 / AWAIT을 사용하는 또 다른 가능한 해결책이다. 이것의 아름다움은 TOTAL_PAGES 당신이 당신의 요청을 처리하는 동안이 증가하는 경우가 있는지 확인합니다 당신이 모든 것을 얻을 수 있도록 동적 계산이다.
여기서 비동기 / AWAIT을 사용하는 또 다른 가능한 해결책이다. 이것의 아름다움은 TOTAL_PAGES 당신이 당신의 요청을 처리하는 동안이 증가하는 경우가 있는지 확인합니다 당신이 모든 것을 얻을 수 있도록 동적 계산이다.
async function fetchMetaData() { let allData = []; let morePagesAvailable = true; let currentPage = 0; while(morePagesAvailable) { currentPage++; const response = await fetch(`http://api.dhsprogram.com/rest/dhs/data?page=${currentPage}`) let { data, total_pages } = await response.json(); data.forEach(e => allData.unshift(e)); morePagesAvailable = currentPage < total_pages; } return allData; }
from https://stackoverflow.com/questions/40677764/how-to-fetch-data-over-multiple-pages by cc-by-sa and MIT license
'REACTJS' 카테고리의 다른 글
[REACTJS] appregistry 모듈이 등록 호출 모듈없는 (발신 runApplication) (0) | 2020.11.14 |
---|---|
[REACTJS] 이 결합 후가 아닌 함수와 setState (0) | 2020.11.14 |
[REACTJS] REDUX에서 중첩 된 상태 업데이트 (0) | 2020.11.14 |
[REACTJS] JS에서 백엔드 오류가 개체에서 개체의 내부 프론트 엔드와 함께 처리하는 방법 (0) | 2020.11.14 |
[REACTJS] 반응 - 매개 변수와 같은 클래스의 이벤트 (0) | 2020.11.14 |