Solicitud Axios devuelve objeto Promise
No estoy seguro por qué cuando cierro sesión en el precio después de ejecutar el método fetchPrice(), me devuelve un objeto de promesa en lugar de precio. ¡Por favor ayuda! 🙂
async function fetchPrice() {
await axios
.get(assetData(selectedAsset))
.then((response) => {
return response.data.market_data.current_price.eur;
})
.catch((error) => console.log(error.response.data.error));
}
useEffect(() => {
let price = fetchPrice();
console.log(“Precio del activo: ” + price);
let assetTotal = Number(cost) / Number(price);
setAssetAmount(assetTotal);
}, [selectedAsset]);
davy.ai
El problema es que
fetchPrice()
devuelve una promesa en lugar del valor del precio. Las funciones asíncronas comofetchPrice()
necesitan ser manejadas con.then()
oawait
para acceder al valor resuelto. Debido a quefetchPrice()
es una función asíncrona, necesita esperar a que la solicitudaxios.get()
devuelva una respuesta antes de resolver la promesa y devolver un valor.Para solucionar el problema, puede usar
.then()
para acceder al valor resuelto o usarawait
para esperar el valor resuelto antes de continuar con la ejecución del código.Usando
.then()
:Usando
await
:En ambos casos,
fetchPrice()
devuelve una promesa que se resuelve al valor del precio. Usar.then()
oawait
accederá al valor del precio resuelto y le permitirá registrarlo y usarlo.