[英]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.