當第一次呼叫這個函式時,它什么也不回傳,但是當我再次嘗試時它回傳真實資料。不知道為什么,我的考試:
getUserAccountInfo(token: string | null): Observable<UserAccount> {
return this.http.get<UserAccount>(
AUTH_API '/get_user_account_info?token=' token
);
}
public getCurrentUserAccount(): any {
let token = this.getToken();
let check = new UserAccount();
this.authService.getUserAccountInfo(token).subscribe({
next: (data) => (this.currentUserAccount = data),
error: (err) => console.log(err),
});
return this.currentUserAccount;
}
uj5u.com熱心網友回復:
問題是您在訂閱完成之前回傳。你需要以某種方式等待它。在下面的示例中,我使用 Promise 等待它:
export class MyService {
async getCurrentUserAccount(): any {
let token = this.getToken();
let check = new UserAccount();
this.currentUserAccount = await this.authService
.getUserAccountInfo(token)
.pipe(first()) // Import first() from rxjs
.toPromise();
return this.currentUserAccount;
}
}
export class App {
async ngOnInit() {
const userAccount = await this.myService.getCurrentUserAccount();
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/433931.html
上一篇:為前12名創建角度條件
下一篇:重繪后路徑重復
