Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

140
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!