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

146
Vistas
Undersanding request get in node.js

I'm trying to do a GET request in node.js. I would like to access the result of the request but there is a problem. Here is the code :

const https = require('https');
var data;

https.get('https://www.example.com', (resp) => {

  resp.on('data', (chunk) => {
    data += chunk;
  });

  resp.on('end', () => {
    console.log("Inside : "+data+"\n"); 
  });

}).on("error", (err) => {
  console.log("Error: " + err.message);
});

console.log("Outside : "+data+"\n"); 

The outside message appears before the inside one, and only the latter displays the request. That is due to asynchronous process I guess. But if I want to use my request outside, it's a problem because of this delay. How may I do?

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

0

Your code execute asyncronymos. http.get(...) execute, but programm don't wait result of your get. So when you do "console.log("Outside : "+data+"\n");" - your data is empty. You will never get data to outside message, without js constructions like async/await.

about 4 years ago · Juan Pablo Isaza Denunciar

0

This is what you need:

(async function () {
  const https = require('https');
  var data;

  await new Promise((resolve, reject) => {https.get('https://www.example.com', (resp) => {

      resp.on('data', (chunk) => {
        data += chunk;
      });

      resp.on('end', () => {
      console.log("\n\n===>Inside : "+data+"\n");
      resolve();

      });

    }).on("error", (err) => {
      console.log("Error: " + err.message);
      reject();
    });
    
  });

  console.log("\n\n===>Outside : "+data+"\n"); 
})();
about 4 years ago · Juan Pablo Isaza Denunciar

0

Thanks for answering. After searches, I made this, which work, but I don't know if it's the best way to do this.

const https = require('https');
var data;

(async function () {

  var p = new Promise((resolve) => {https.get('https://www.example.com', (resp) => {

      resp.on('data', (chunk) => {
        data += chunk;
      });

      resp.on('end', () => {
      console.log("\n\n===>Inside : "+data+"\n");
      resolve();

      });

    }).on("error", (err) => {
      console.log("Error: " + err.message);
    });
    
  });

  await p;
  console.log("\n\n===>Outside : "+data+"\n"); 
})();

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