Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

149
Visualizações
Resolviendo la promesa en la carga de la página usando la resolución de ruta

Estoy usando el módulo AngularFireAuth para llevar el UID del usuario actual al componente en la carga de la página a través de la resolución de la ruta, pero las líneas de código necesarias para devolver la promesa sin envolver al componente no parecen resolverse y dejan la promesa sin cumplir.

Código de módulo de enrutamiento relevante para el módulo de edición de perfiles:

 const routes: Routes = [ { path: '', component: EditProfilesComponent, resolve: { userUID: UserInfoService }, }, ];

El código del servicio de resolución es el siguiente:

 export class UserInfoService implements Resolve<any> { constructor(public afAuth: AngularFireAuth, public af: AngularFirestore) {} async resolve() { const user = await this.afAuth.currentUser; const userUID = user?.uid; return userUID; //returns undefined } }

También intenté convertirlo en una promesa y resolverlo, pero eso también volvió indefinido. El código se veía así:

 const promise = new Promise(async(resolve, reject) => { const user = await this.afAuth.currentUser const userUID = user?.uid; resolve(userUID) })

Y luego el código del componente de consumidor de EditProfiles es:

 export class UserInfoService implements Resolve<any> { constructor(public afAuth: AngularFireAuth, public af: AngularFirestore) {} async resolve() { const user = await this.afAuth.currentUser; const userUID = user?.uid; return userUID; //returns undefined } }

Realmente no estoy seguro de cómo hacer que la promesa devuelva el UserUID para ser utilizado y consumido por ese componente, y muestre datos específicos del usuario, pero no estoy seguro de cómo asegurarme de que esté allí antes de que se cree una instancia del componente. .

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

@Bravo tenía razón, era un problema con el diseño del código, resulta que lo que realmente quería era que la página esperara hasta que se resolviera la promesa de imprimir los datos, por lo que lo que se necesitaba en ngOnInit era el siguiente código

 ngOnInit(): void { this.afAuth.authState.subscribe((user) => { if(user) { //write logic here to make sure the promise gets resolved } else { //logic for when the page is getting the information } }) }

Así es como te aseguras de que las promesas enviadas desde firebase se resuelvan, te suscribes al authstate observable y cuando ese observable se vuelve verdadero, finalmente puedes recuperar la información de firebase que necesitas, esa es la pieza clave que me faltaba. resulta que los solucionadores de ruta pueden no haber sido la mejor herramienta para.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda