Tratando de obtener una mejor comprensión de Promises con la sintaxis async/await. .then().catch() se siente más sencillo con las señales visuales y la estructura añadidas. ¿Estas dos funciones async/await tienen algún sentido lógico para realizar múltiples llamadas API y actuar sobre los datos una vez que se resuelven? El objetivo es tener una función que tome la URL, el número de páginas adicionales y devuelva datos de todas las llamadas en una salida. Funciona, pero es lo suficientemente lento como para hacerme creer que es bastante ineficiente. (Estoy seguro de que los bucles anidados no ayudan)
async function getData(url, numOfPages) { try { const response = await axios.get(url) const { results, next: nextUrl } = response.data const nextPages = await getNextPages(nextUrl, numOfPages) const finalData = results.concat(nextPages) finalData.forEach(data => console.log(data.name)) } catch (err) { console.log(err) } } getData('https://swapi.dev/api/planets/', 3) async function getNextPages(nextUrl, numOfPages) { try { const response = await axios.get(nextUrl) const data = response.data.results.map(res => res) let nextPage = response.data.next for (let i = 1; i < numOfPages; i++) { let response = await axios.get(nextUrl) let results = response.data.results nextPage = response.data.next for (let i = 0; i < results.length; i++) { data.push(results[i]) } } return data } catch (err) { console.log(err) } }