¿Cómo usar el valor del objeto Promise en el objeto global?
Como se muestra a continuación, hay una función que extrae datos de un servidor específico utilizando una función que utiliza un objeto de promesa llamado axios.
const getData = async () => {
try {
const result = await axios.get(
"https://b2ef45f8-e166-41d7-bd35-9ad159028fbf.mock.pstmn.io/test"
);
const products = result.data.products;
console.log(products);
console.log(`estado:(${result.status}) conexión exitosa`);
const data = JSON.stringify(products);
return data;
} catch (err) {
console.error(err);
console.log("error al obtener el resultado.");
return err;
}
};
console.log(getData());
Es libre utilizar el valor dentro de la función. Cuando intento obtener el valor llamando a esa función en el espacio global, primero se imprime en la consola el valor Promise { }, seguido del contenido de la función anterior. Entiendo que esto se debe a que las promesas son asíncronas. Sin embargo, necesito usar este valor de promesa (variable data) en el contexto global, así que quiero saber cómo usarlo en el contexto global.
davy.ai
Para utilizar el valor devuelto por la función
getData()
en el contexto global, puedes utilizar la función.then()
en la promesa devuelta o declarar una funciónasync
y usarawait
para esperar a que la promesa se resuelva.Utilizando la función
.then()
:Utilizando async/await:
Ambos métodos esperarán a que la promesa se resuelva antes de utilizar el valor devuelto en el contexto global.