Estoy trabajando en un proyecto Angular donde estoy autenticando a mi usuario y quiero obtener el usuario autenticado actual que funciona bien. Establecí la propiedad del usuario del componente en NgOnInit() pero luego trato de acceder a la propiedad en otra función y no está definida allí a pesar de que le asigné un valor del usuario autenticado. ¿Por qué es eso y cómo evito que suceda?
Aquí está mi código:
NgOnInit() { this.setCurrentUser(); this.getData(); } setCurrentUser() { Auth.currentAuthenticatedUser().then(user=> { console.log(user); this.currentUser = user; }) } getData = () => { console.log("DATA USER:") console.log(this.user) }Está sucediendo debido a la función aync Auth.currentAuthenticatedUser(). puede usar async... await o llamar a getData() en then()
entonces acércate
setCurrentUser() { Auth.currentAuthenticatedUser().then(user=> { console.log(user); this.currentUser = user; this.getData(); }) }Asíncrono... esperar enfoque
async NgOnInit() { await this.setCurrentUser(); this.getData(); } setCurrentUser() { return Auth.currentAuthenticatedUser().then(user=> { console.log(user); this.currentUser = user; }) } getData = () => { console.log("DATA USER:") console.log(this.user) }