我遇到的问题是我想调用一个服务,该服务对API进行http调用,并检查给定的用户名是否存在。
来自验证的代码:
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值,但是返回值却无济于事。
答案 0 :(得分:0)
暂停,直到承诺以 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)