angular - 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);
}
}
解决方案
如果我可以提出一个解决方案,那么您感兴趣的变量应该是可观察的,因为它只能异步使用。
export class clase{
public carga$ = this.loadService.cargar().pipe(shareReplay(1))
public miVariable$ = this.carga$.pipe(map(c => c.mivalorRecogido));
}
现在,当您对这些属性中的任何一个感兴趣时,您只需订阅它们。操作员将确保您的shareReplay
值被缓存并且仅请求一次,并且仅在第一次需要时才被请求。
推荐阅读
- r - 转换 R 表避免重复
- python-2.7 - 在 Ubuntu 上安装与 GPU (Cuda 9.0) 兼容的预构建 Caffe
- angular - 是否可以将@ContentChild 与基类一起使用?
- javascript - 为 Firefox 扩展设置弹出窗口标题
- python - Python在编译正则表达式时返回不平衡括号错误
- jquery - 从 Angular 4 升级到 6 后应用程序无法访问 jquery 插件
- python - 为什么我使用 Esearch 和 Efetch 时会收到 BioPython HTTPError: HTTP Error 400: Bad Request
- jquery - 如何使用 .each jQuery 将我的元素的 ID 设置为另一个元素的属性
- java - 锁定的灵活替代方案(选择性锁定)
- python - 使用与时间序列相关的 python 进行机器学习