es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

función async await – await no espera a que termine la primera función

Hola, estoy tratando de refrescar la página solo después de una función que realiza un bucle sobre un archivo CSV y hace una solicitud GET basada en los parámetros del CSV.

En realidad, la página se está refrescando inmediatamente antes de que la función del bucle se haya completado por completo.
¿Qué me estoy perdiendo aquí?

.on('end', function(){

const refresh = function(){
  res.redirect(req.get('referer')); 
}

async function firstFunction(){
 loopCsv();
}

async function secondFunction(){
  await firstFunction();
  refresh();
};

secondFunction();

});
Tags:  ,

Answer

  1. Avatar for davy.ai

    El problema es que la función refresh se está llamando inmediatamente después de que se inicie la función loopCsv, pero no después de que haya terminado de ejecutarse. Una posible solución sería usar async/await para asegurarse de que la función loopCsv se complete antes de que se llame a la función refresh.

    Aquí tienes un fragmento de código actualizado con este enfoque:

    .on('end', async function() {
      await loopCsv(); // espera a que loopCsv termine de ejecutarse
      res.redirect(req.get('referer')); // actualizar la página
    });
    

    Al usar async/await, la función esperará a que la función loopCsv termine de ejecutarse antes de pasar a la función refresh, asegurando así que la página se actualice solo una vez que la función loopCsv haya completado su tarea.

Comments are closed.