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

124
Vistas
No se puede esperar la llamada asíncrona en Javascript

Tengo una llamada a AWS donde recibo una respuesta y la devolución de llamada se ve así:

 const handleResponse = async (response) => { var responseBody = ""; response.on("data", async function (chunk) { responseBody += chunk; }); response.on("end", async function (chunk) { return responseBody; }); return responseBody; };

Mi intento actual es llamar a esta función con una espera como esta:

 const getLoadIds = async (payload) => { // console.log(payload); const resp = await handleResponse(payload) console.log(resp) <--- this is undefined }

¿Cómo puedo obtener la respuesta de la llamada response.on("end")?

Aquí está el código de llamada original:

 var client = new AWS.HttpClient(); try { await client.handleRequest(request, null, async (res) => fn(res)); } catch (err) {

fn es un alias para getLoadIds

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Es posible que desee tener algo como

 const handleResponse = (response) => { return new Promise((resolve) => { var responseBody = ""; response.on("data", function (chunk) { responseBody += chunk; }); response.on("end", function (chunk) { resolve(responseBody); }); }); };

upd: gracias @Andrew Li, noté un problema de error en la respuesta

about 4 years ago · Juan Pablo Isaza Denunciar

0

Envuelva el controlador de flujo en una promesa. resolve si devuelve datos, y reject si tiene un error.

 function handleResponse() { let responseBody = ''; return new Promise((res, rej) => { response.on('data', (chunk) => responseBody += chunk); response.on('end', () => res(responseBody)); response.on('error', (error) => rej(error)); }); }; function getLoadIds(payload) { const resp = await handleResponse(payload); console.log(resp); }
about 4 years ago · Juan Pablo Isaza 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