我的变量未定义时遇到问题。我确定这是因为 observable 还没有完成。这是我的 .ts 文件中导致问题的代码部分。 (我放置了理解该问题所需的最少代码。此外,myFunction
从 HTML 中的点击事件中被调用)。
export class myClass {
myVariable: any;
myFunction() {
this.myService.getApi().subscribe(data => {
this.myVariable = data;
});
console.log(myVariable) --> undefined
}
}
所以这段代码调用了我的服务中的一个函数,该函数从 API 返回一些数据。问题是,当我尝试在订阅函数之外访问变量 myVariable
时,它返回未定义。我确定这是因为在我尝试访问 myVariable
在我尝试访问 myVariable
之前,有没有办法等待订阅完成?
最佳答案
为什么不创建一个单独的函数并在订阅中调用它。
export class myClass {
myVariable: any;
myFunction() {
this.myService.getApi().subscribe(data => {
this.myVariable = data;
this.update()
});
this.update()
}
update(){
console.log(this.myVariable);
}
}
关于javascript - Angular 2+等待订阅完成更新/访问变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50951779/