簡體   English   中英

角度等待直到變量已初始化

[英]Angular Wait until variable has been initialized

我將要為Web應用程序創建服務。 第一步是通過其余的API獲得令牌。 該令牌可用后,應立即將其作為標頭發送以獲取更多信息。

我的問題是在設置變量之前,它執行該函數以獲取更多信息。 (標頭為空,但如果我手動設置令牌,則可以使用)。

如何讓我的函數等到變量具有值?

謝謝

gettoken(): void {
this.http.get<InitResponse>('URL' + '/token').subscribe(data => {
    this.token = data.token;
    localStorage.setItem('token', data.token);
    getmoreInfo();
  },
  (err: HttpErrorResponse) => {
    if (err.error instanceof Error) {
      console.log('Client-side error occured.');
    } else {
      console.log('Server-side error occured.');
    }
  }
);

}

這是我的getToken方法:

  getToken(idProfile: string): Observable<boolean> {
    let urlAPIToken: string = urlAPIAuth;

    urlAPIToken += '/token?id_profile=' + idProfile;
    let res = encodeURIComponent(urlAPIToken);   

    return this.http.get(urlAPIToken, { withCredentials: true }).pipe(
      map(result => {    
        let token = result.toString();
        localStorage.setItem('token', token);
        return true;
      }));
  }

而且,為了將其發送到任何請求,我使用了一個攔截器,該攔截器在所有HTTP請求中發送令牌:

const token = localStorage.getItem(TOKEN_NAME);

      request = request.clone({
        setHeaders: {
          Authorization: `Bearer ${token}`
        }
      });

示例: 這里

添加異步並等待您的函數以使其異步加載。

https://javascript.info/async-await

這是實踐的例子

https://medium.com/@balramchavan/using-async-await-feature-in-angular-587dd56fdc77

角^

當您將異步功能

然后等待它們執行的步驟,這就是異步代碼的意思

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM