【发布时间】:2022-01-06 16:08:37
【问题描述】:
我试图将我的 Http.Get 的订阅响应传递给一个变量,但我总是尝试它的值是 undefined
TesteToken() : any {
let token;
this.http.get<any>(`${this.url}/token`).subscribe(res => {
token = res;
return token;
});}
但是当我把这个
TesteToken() : any {
let token;
this.http.get<any>(`${this.url}/token`).subscribe(res => {
token = res;
console.log(token);
});}
然后工作,输出在控制台中
【问题讨论】:
-
不要忘记您的 HTTP GET 调用是异步。一般来说,以这种方式将 Observable “扁平化”为局部变量是代码异味,这正是您遇到问题的原因。考虑将 Observable 作为 Observable 使用,可能实现 BehaviorSubject 架构(或 NgRx 之类的库)以便能够以这种方式“存储”值。
标签: angular typescript