簡體   English   中英

Angular - 異步反應式表單驗證器的問題

[英]Angular - Problem with async reactive form validator

我遇到的問題是我想調用一個服務,該服務對 API 進行 http 調用並檢查給定的用戶名是否存在。

來自 Auth 的代碼:

usernameCheck(username: string){ return this.http.get(this.baseUrl + "usernamecheck?username=" + username); }

來自控制器的代碼:

async usernameExistsValidator(g: FormGroup){
const username = g.get("username").value;
let username_exists: boolean;
if(username){
  await this.authService.usernameCheck(username).toPromise()
    .then(
      (res : any) => {
        username_exists = res.exists;
      }
    )
  console.log(username_exists)
  return username_exists ? { usernameExistsError: true } : null; 
}

主要問題是我得到了正確的 console.log 值,但返回什么都不做。

暫停,直到承諾通過await解決,所以改變這個

await this.authService.usernameCheck(username).toPromise()
    .then(
      (res : any) => {
        username_exists = res.exists;
      }
    )
  console.log(username_exists)

經過

   const res = await this.authService.usernameCheck(username).toPromise()

   username_exists = res.exists;

   console.log(username_exists)

暫無
暫無

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

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