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

127
Vistas
No se puede acceder a la variable dentro de la función de solicitud JS

Tengo una función que debería devolver un token de acceso. Dentro de una función hay una solicitud, que me da el token. Pero no puedo acceder a él en la función principal.

Aquí está mi código desde dentro de una función:

 var accessToken = 'test1'; request.post(authOptions, function(error, response, body) { accessToken = body.access_token; console.log('test2 ' + accessToken); }); console.log('test3 ' + accessToken);

Da el siguiente resultado:

prueba3 prueba1

(nodo: 14744) ExperimentalWarning: stream/web es una característica experimental. Esta característica podría cambiar en cualquier momento

(Use node --trace-warnings ... para mostrar dónde se creó la advertencia)

prueba2 BQDzZHO1Eg99...

accessToken obtiene el valor dentro de la solicitud como se ve en test2, pero cuando lo recupero después de la función, aún no lo tiene. ¿Cómo puedo usarlo después? p.ej. en función recuperar

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

0

Cuando haces request.post , tu código tiene que esperar una respuesta del servidor en el que estás publicando. Esta respuesta se maneja en su function(error, response, body) función (pasada como el segundo argumento para request.post . Pero mientras tanto, el resto de su función continuará ejecutándose. He agregado comentarios para probar y explica esto mas adelante:

 var accessToken = 'test1'; // First line of your code is executed first // Now we execute request.post request.post(authOptions, function(error, response, body) { // This is only executed whenever the response is received. It may be many milliseconds later accessToken = body.access_token; console.log('test2 ' + accessToken); }); // This is executed immediately after the `request.post`. Therefore accessToken will still be 'test1'. console.log('test3 ' + accessToken);

En su lugar, puede devolver una Promise o usar devoluciones de llamada para obtener el token de acceso de esta función. Aquí hay una función básica de devolución de llamada:

 function getAccessToken(callback) { request.post(authOptions, function(error, response, body) { callback(body.access_token); }); } getAccessToken(function(myToken) { // Here is your token. });
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