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

190
Vistas
Angular: access variable which is declared inside subscribe function

I'm trying to access a variable inside a subscribe function but it returns to me undefined, please any suggestions:

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 inside displayTaskByIdDetails function returns this:

enter image description here

Meaning that I have to use that property releveBancaireId which is returned from displayTaskByIdDetails and use it in another function which calls a service as a parameter

This is my service which needs releveBancaireId as a parameter:

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

When compiling console returns undefined

enter image description here

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

0

Ok so since the calls are sequential its a perfect opotunity to use mergeMap to chain multple requests. since you still need the data from the first request you can tap that data and retrive it. and on the final subscribe you will get the data from the final request.

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