Actualmente estoy obteniendo categorías de WordPress usando REST. El límite de 100 me obligó a hacer varias consultas. Aquí está mi función actual para esto. No es lindo. ¿Alguien puede pensar en algo más conciso?
export async function getAllCategories() { let arr = [] const res = await fetch(`${API_URL}wp/v2/categories?per_page=100&page=1`) const data = await res.json() const totalPages = res.headers.get("X-WP-TotalPages") data.forEach((el) => { arr.push(el) }) let i = 2 while (i <= totalPages) { const res = await fetch(`${API_URL}wp/v2/categories?per_page=100&page=${i}`) const data = await res.json() data.forEach((el) => { arr.push(el) }) i++ } return arr }Podría definir una función secundaria getCategories que recupera las categorías para la página específica y el número total de páginas.
Esto eliminará la duplicación de la llamada de fetch .
Además, puede usar el operador de propagación para evitar los bucles forEach para completar la matriz resultante:
export async function getAllCategories() { let result = [] let page = 1; let totalPages = 0; do { const { data, total } = await getCategories(page); result.push(...data) totalPages = total page++ } while (page <= totalPages); return result } const getCategories = async (page) => { const res = await fetch(`${API_URL}wp/v2/categories?per_page=100&page=${page}`) return { data: await res.json(), total: res.headers.get("X-WP-TotalPages") } }