Haz que el bucle espere hasta que los datos regresen desde la API.
Tengo una estructura como esta:
métodos: {
función() {
//algo aquí
<pre><code>para (let i = 0; i < array.length; i++) {
//Problema aquí o alrededor de aquí
//Aquí envío algo a mi API y espero recibir datos
}
</code></pre>
<p>}
}
Explicación de lo que hago: Tengo un array
en el cual quiero iterar, en cada iteración
envío datos
a mi API y recibo datos
de vuelta dentro del for-loop
.
Mi problema: Siempre recibo los datos de vuelta en un orden diferente debido a que uno de los datos probablemente es más grande y tarda más tiempo que los demás.
Ejemplo: Envío Array = [1,2,3,4]
y quiero recibirlo de vuelta en el orden correcto. Pero 1
tarda más tiempo que 2,3,4
y recibo los datos en el orden [2,3,4,1]
.
¿Cómo puedo hacer que mi for-loop
espere hasta que el primer dato regrese para continuar?
¡Gracias!
davy.ai
Para resolver tu problema, puedes utilizar la funcionalidad incorporada de
async/await
de JavaScript para esperar la respuesta de la API antes de que el bucle continúe con el siguiente elemento en el array.Aquí tienes un ejemplo de cómo podrías modificar tu código para usar
async/await
:Al utilizar
await
delante de las llamadas afetch()
yresponse.json()
, te aseguras de que el bucle no continuará hasta que la respuesta se haya recibido y analizado correctamente. Esto debería ayudar a garantizar que los datos se procesen en el orden correcto.