async/await permite mostrar datos en el ámbito global.
Esta es mi primera vez usando promesas y mongoose, y estoy tratando de guardar datos en una variable global para su uso posterior.
const getUser = async () => {
let user
try {
user = await clientModel.findOne({username: email})
console.log(user)
} catch (e) {
console.log(e)
}
return user
}
const filteredUser = getUser().then((value) => {
return value
}).catch((e) => console.log(e))
console.log(filteredUser)
La consola muestra el contenido del usuario:
{
_id: new ObjectId("61aa75c64e1526131d98f2a1"),
username: 'paul@beatles.uk',
chequing: null,
saving: '1000022',
__v: 0
}
Pero filteredUser
sigue mostrando Promise { <pending> }
.
davy.ai
La razón por la cual
filteredUser
está mostrandoPromise { <pending> }
es porque la funcióngetUser()
devuelve una promesa yfilteredUser
recibe la promesa pendiente en lugar del valor resuelto. Para acceder al valor resuelto, debes utilizar el método.then()
en la promesafilteredUser
.Por ejemplo:
Esto registrará en la consola el valor resuelto de la función
getUser()
cuando esté disponible. Alternativamente, también puedes utilizarawait
para obtener directamente el valor resuelto:Nota:
await
solo debe ser utilizado dentro de una funciónasync
.