Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

182
Vistas
Angular: variable de acceso que se declara dentro de la función de suscripción

Estoy tratando de acceder a una variable dentro de una función de suscripción pero me regresa indefinido, por favor alguna sugerencia:

 export class InboxmanagementComponent implements OnInit { releveBancaireId: number; ngOnInit(): void { this.displayTaskByIdDetails(); this.displayReleveBancaireById(); } displayTaskByIdDetails(){ this._inboxServcie.getTask(this.task.id).subscribe( (data) => { this.task = data; this.releveBancaireId = data.releveBancaireId; // this is the variable I want to access console.log(this.releveBancaireId) // this returs 1 which is right "releveBancaireId" has value 1 } ); } displayReleveBancaireById(){ this._relebeBancaireService.getReleveBancaireById(this.releveBancaireId).subscribe( // this is where I want to access that variable as a parameter (data) => { this.releveBancaire = data; console.log(data); } ); } }

this.task dentro de la función displayTaskByIdDetails devuelve esto:

ingrese la descripción de la imagen aquí

Lo que significa que tengo que usar esa propiedad releveBancaireId que se devuelve desde displayTaskByIdDetails y usarla en otra función que llama a un servicio como parámetro

Este es mi servicio que necesita releveBancaireId como parámetro:

 getReleveBancaireById(id: number): Observable<ReleveBancaire>{ const taskIdUrl = `${this.baseUrl}/${id}`; return this.httpClient.get<any>(taskIdUrl).pipe( map((response: any) => response) ); }

Al compilar la consola devuelve undefined

ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Ok, dado que las llamadas son secuenciales, es una oportunidad perfecta para usar mergeMap para encadenar múltiples solicitudes. dado que aún necesita los datos de la primera solicitud, puede tocar esos datos y recuperarlos. y en la suscripción final obtendrá los datos de la solicitud final.

 export class InboxmanagementComponent implements OnInit { releveBancaireId: string; ngOnInit(): void { this.displayTaskByIdDetails(); } displayTaskByIdDetails(){ this._inboxServcie.getTask(this.task.id).pipe( tap(taskData=>{ this.task = taskData this.releveBancaireId = taskData.releveBancaireId; // incase you still need this. }), mergeMap(data=>{ return this._relebeBancaireService.getReleveBancaireById(data.releveBancaireId); })).subscribe((data) => { this.releveBancaire = data; console.log(data); }); } }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda