Esta sección fue analizado por expertos así se asegura la veracidad de este post.
Solución:
El problema es que el original axiosTest()
la función no está devolviendo la promesa. Aquí hay una explicación extendida para mayor claridad:
function axiosTest()
// create a promise for the axios request
const promise = axios.get(url)
// using .then, create a new promise which extracts the data
const dataPromise = promise.then((response) => response.data)
// return it
return dataPromise
// now we can use that data from the outside!
axiosTest()
.then(data =>
response.json( message: 'Request received!', data )
)
.catch(err => console.log(err))
La función se puede escribir de manera más sucinta:
function axiosTest()
return axios.get(url).then(response => response.data)
O con async/await:
async function axiosTest()
const response = await axios.get(url)
return response.data
- Guía sobre el uso de promesas
- Información sobre funciones asíncronas
puede completar los datos que desee con una función de devolución de llamada simple, digamos que tenemos una lista llamada lst
que queremos llenar, tenemos una función que pupula pupula lista,
const lst = [];
const populateData = (data) => lst.push(data)
ahora podemos pasar la función de devolución de llamada a la función que realiza la llamada axios y podemos completar la lista cuando obtengamos datos de la respuesta.
ahora hacemos nuestra función que hace la solicitud y pasa populateData
como una función de devolución de llamada.
function axiosTest (populateData)
axios.get(url)
.then(function(response)
populateData(response.data);
)
.catch(function(error)
console.log(error);
);
Sé que esta publicación es antigua. Pero he visto varios intentos de personas que intentan responder usando async y esperan pero se equivocan. Esto debería aclararlo para cualquier referencia nueva.
async function axiosTest()
try
const data:response = await axios.get(url) //use data destructuring to get data from the promise object
return response
catch (error)
console.log(error);
Si posees algún recelo y forma de limar nuestro enunciado puedes ejecutar una crítica y con placer lo analizaremos.