Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

117
Vistas
Node.js Response.send no devuelve datos antes de que finalice la función

¿Puede alguien explicarme por qué la siguiente función regresa antes de que finalice retrieve_s3_file()?

El cliente no recibe datos de response.send a continuación. Los datos devueltos por retrieve_s3_file() son correctos (según la salida de la consola), pero primero se envía una respuesta sin datos al cliente.

 app.post("/getJobStatus", function(request, response){ var guid = request.body.job_id; var to_do_list = []; var data_list = []; var completed_list = []; axios.get(job_queue_url + "/list?guid=" + guid) .then(function (res){ console.log("Response from API gateway : "); console.log(res.data); files = res.data; for (let i = 0; i < files.length; i++) { if (files[i] in completed_list) {continue} else { to_do_list.push(files[i]); completed_list.push(files[i]); } } response.send(retrieve_s3_file(to_do_list, guid)); }) .catch(function (error){ console.log(error); });
about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Si retrieve_s3_files es asincrónico , deberá esperar a que se resuelva la promesa antes de poder usar el valor. Puedes cambiar esa última línea a algo como esto:

 retrieve_s3_file(to_do_list, guid).then(val => { response.send(val); }).catch(error => { console.log(error) });

He agregado el método .catch para que pueda manejar cualquier error que ocurra mientras interactúa con s3.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda