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

251
Views
Pasar variables externas a la llamada Axios.get().then()

Quiero llamar a un punto final usando Axios, luego hacer algo con los datos de respuesta y una variable que se definió antes de la llamada. Sé cómo pasar datos a la devolución de llamada al crear la función que devuelve la promesa yo mismo, pero dado que Axios es un código externo y parece que no puedo encontrar ninguna opción para pasar datos adicionales en los documentos de Axios o en la configuración . ¿Hay alguna otra forma de hacer que esto funcione, además de enviar el valor como datos al servidor y hacer que el servidor responda dentro de la respuesta o usar una solución fea usando la variable global de la window ?

 const animate = true; // The variable to be passed axios.get('/endpoint.json') .then(function(response, animate) { // This doesn't work... if (response.data.coordinates) { console.log(animate); // ...because this is undefined setLocation('takeoff_location', response.data.coordinates, animate); // variable and response data need to be passed to this call } });
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Esto crea una nueva variable animate , completamente ajena a la ya definida:

 function(response, animate)

Esta nueva variable "sombrea" la que está en el ámbito superior, por lo que dentro de esta función cualquier referencia para animate solo hace referencia a esta nueva variable. Lo cual no está definido porque Axios (específicamente la Promise devuelta por .get() ) no tiene motivos para pasar un segundo valor a esta devolución de llamada.

No sombrees la variable:

 function(response)

Luego, dentro de la función, cualquier referencia a animate hará referencia a la variable en el ámbito superior.

about 4 years ago · Juan Pablo Isaza Report

0

el .then() es una promesa y tiene acceso a cualquier variable fuera del alcance (como un cierre). Si desea encapsular la llamada API, envuelva todo en una función y los argumentos van allí.

 const doRequest = function(animate) { axios.get('/endpoint.json').then(function(response) { if (response.data.coordinates) { setLocation('takeoff_location', response.data.coordinates, animate); } }); }; doRequest(250); doRequest(500);

Tenga en cuenta que esto hará 2 solicitudes de animación rápidamente en sucesión. Si desea "esperar" a que el otro termine primero, debe hacer esto: (tenga en cuenta que ahora estoy devolviendo la solicitud axios de la función). Esto significa que se devuelve el objeto de promesa y ahora puede encadenar más funciones .then() en el "exterior" de la función, lo que sucederá solo cuando finalice la solicitud.

 const doRequest = function(animate) { return axios.get('/endpoint.json').then(function(response) { if (response.data.coordinates) { setLocation('takeoff_location', response.data.coordinates, animate); } }); }; doRequest(250).then(function() { // this will happen when the outer API call finishes doRequest(500); });
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!