我需要有角度的帮助,我有一种方法可以验证电子邮件是否已经存在。
此代码对此负责:
emailExists = (email) => this.http.post(`${this.BASE_URL}/emailExists`, { 'email': email }).subscribe(response => {
if (!response.json())
return false
this.handleError("Email already exists!")
return true
}, error => this.handleError(error.json()))
这是谁调用方法:
const emailValid = (auth) =>
control => {
var a = auth.emailExists(control.value)
var b = (/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/).test(control.value)
if (!a && b)
return null
else
return { invalidEmail: true }
}
值得注意的是,负责该代码的代码根据电子邮件的原创性返回true或false,但是调用此方法的人正在获取订阅者,我在哪里错了?
我将提供的任何其他信息。
编辑:我无法在链接的副本中得到答案,我已经尝试了所有重复的内容,没有任何效果......答案 0 :(得分:0)
使用注释
修改结构
var emailExists = (email) => { // Keep the rest of the code within this block
let res: boolean; // Response that you are expecting
this.http.post(`${this.BASE_URL}/emailExists`, {
'email': email
}).subscribe(response => {
if (!response.json()) {
res = false; // Assign Value
return;
}
this.handleError("Email already exists!")
res = true; // Assign Value
}), error => this.handleError(error.json());
return res; // Return the response, instead of Subscriber
};