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

185
Views
Cómo devolver datos de http.get a la función principal en nodejs

La tarea es devolver datos de la función getData a la función principal.

 function getData(){ const https = require('https') const url = "https://...../api/movies"; https.get(url, res => { let data = ''; res.on('data', chunk => { data += chunk; }); res.on('end', () => { data = JSON.parse(data); console.log(data); //How can I return this data to main function? }) }).on('error', err => { console.log(err.message); }) } function main(){ console.log(getData()); }

No puedo acceder a los datos o imprimir datos en la función principal

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Creo que ya tienes la respuesta en tu comentario '//¿Cómo puedo devolver estos datos a la función principal?'.

 ... res.on('end', () => { data = JSON.parse(data); console.log(data); return data; }) ...

Entonces, el valor de retorno de su función getData ahora debería ser el json-data analizado y ser accesible en la función principal.

about 4 years ago · Juan Pablo Isaza Report

0

Crearía una variable para guardar el valor que desea devolver

 const https = require('https') function getData() { let ret = null; const url = "https://...../api/movies"; https.get(url, res => { let data = ''; res.on('data', chunk => { data += chunk; }); res.on('end', () => { ret = JSON.parse(data); }) }).on('error', err => { console.log(err.message); }) return ret; } function main() { console.log(getData()); }
about 4 years ago · Juan Pablo Isaza Report

0

Lo que podría hacer es envolver su solicitud en una Promise . Desearía devolver esta promesa y esperar a que se cumpla:

 function getData() { const url = "https://...../api/movies"; return new Promise((resolve, reject) => { const req = https.get(url, (res) => { let data = ''; res.on('data', (chunk) => { data += chunk; }); res.on('end', () => { resolve(JSON.parse(data)); }); }); req.on('error', (err) => { reject(err); }); req.end(); }); } function main() { getData().then(data => { console.log("Response:", data); }, error => { console.error(error); }); }

Además, puede hacer que su función main sea async y usar await para obtener la respuesta:

 async function main() { const data = await getData(); console.log(data); } // Start an IIFE to use `await` at the top level. See: https://stackoverflow.com/a/14220323/7661119 (async () => { await main() })();
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!