gpt4 book ai didi

javascript - Angular 2+等待订阅完成更新/访问变量

转载 作者:太空狗 更新时间:2023-10-29 17:13:13 27 4
gpt4 key购买 nike

我的变量未定义时遇到问题。我确定这是因为 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com