首页 > 解决方案 > Angular 2:从一个函数将值设置为变量,然后在同一类的另一个函数中获取它

问题描述

我需要设置函数 load() 中指示的 myVariable 值,我从服务中收集数据并将其显示在另一个函数 (otrafuncion()) 中,但我不知道语法。

export class clase{

  public this.miVariable:any;

   constructor(){}

   ngOnload():void{
     this.load();
     this.otraFuncion();
   }

   load() {
     this.loadService.cargar().subscribe(
     (respuesta) => {
         this.carga = respuesta;
         this.miVariable=this.carga.mivalorRecogido; //necesito este valor
       }
      );
     }
    }

   otrafuncion(){
   console.log(this.miVariable);
   }
  }  

标签: angular

解决方案


如果我可以提出一个解决方案,那么您感兴趣的变量应该是可观察的,因为它只能异步使用。

export class clase{
  public carga$ = this.loadService.cargar().pipe(shareReplay(1))
  public miVariable$ = this.carga$.pipe(map(c => c.mivalorRecogido));
}  

现在,当您对这些属性中的任何一个感兴趣时,您只需订阅它们。操作员将确保您的shareReplay值被缓存并且仅请求一次,并且仅在第一次需要时才被请求。


推荐阅读