Necesito recorrer la llamada api en función de la longitud y luego almacenar la respuesta dentro del estado.
El problema es que cuando uso Promises, todo toma 1 minuto y 30 segundos para resolver la serie de promesas que no puedo pagar, por lo que necesito hacerlo sincrónico, por lo que demora alrededor de 25 segundos para que se resuelva una promesa y luego el el bucle debe continuar hasta que alcance la longitud...
const [data, Setdata] = useState([]); const length = 10; let users = []; for (i = 0; i < length; i++) { users.push(axios.get('/user/' + ${i})) }; Promise.all(users) .then( response => response.map( res => Setdata(res.data) ) );Si su objetivo es solo obtener un usuario a la vez, podría deberse a que está enviando una lista y el servidor no puede manejar más de una solicitud a la vez ... Cualquiera que sea la razón para hacer una solicitud a la vez , podrías hacer algo como esto.
const [data, Setdata] = useState([]); let userIds = [1,2,3,4,5,6,7,8,9,10]; let users = []; while (userIds.length !== 0) { id = userIds.pop(); await axios.get('/user/' + ${id}) .then(function (response) { users.push(response); }); } response => response.map( res => Setdata(res.data) )No he probado esto, solo lo armé, pero podría llevarlo por el camino correcto.