Javascript vuelve a ejecutar la función hasta que la condición sea falsa.
Mediante la API, me gustaría listar todos los usuarios. Cada vez solo puedo tener un máximo de 100 elementos por página. Por lo tanto, necesito obtener la URL de la próxima página para volver a ejecutar la función – runPages para recopilar la lista. Entonces, la condición es cuando next_page == null, la función se detendrá.
En mi código, puedo obtener la URL de la próxima página. Sin embargo, no sigue ejecutando. ¿Alguien puede descubrir cuál es el problema?
const runPages = async (values) => {
if (values.next_page != null) {
for (const field of values.results) {
row.appendChild(addCell(field.name));
row.appendChild(addCell(field.email));
tblbody.appendChild(row);
}
values = await checkPages(values.next_page); // obtener nuevos valores.data mediante URL
runPages(values);
}
};
runPages(values);
const checkPages = async (value) => {
return new Promise((resolve, reject) => {
const getNewPageFromApi = async () => {
const GetUrl = ${value}
;
const Doorkey = { username: “XXX”, password: “*****” };
try {
const response = await Axios.get(GetUrl, { auth: Doorkey });
if (response.data.next_page != null) {
resolve(response.data);
}
} catch (err) {
reject(“no más datos”);
}
};
getNewPageFromApi();
});
};
davy.ai
Parece que el problema está en la función
checkPages
. Parece que no está devolviendoresponse.data
desde la funcióncheckPages
. Debería devolverresponse.data
desde la funcióncheckPages
para que la funciónrunPages
pueda usarla.Intente cambiar la función
checkPages
a esto: