Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

127
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!