Я пытаюсь написать функцию, которая проверяет электронную почту, введенную в форму ввода, используя Async / Await. Это выглядит примерно так:
//Check email entered
if($('email')){
$('email').observe('blur', function() {
//Validate email
(async () => {
await resetMessages('email');
checkEmptyField('email');
checkEmailExists(); //Checks if email already exists.
checkEmailDomain(); //Checks for a valid domain.
})()
});
}
Я совершенно новичок в Async / Await и, честно говоря, не знаю, что делаю, все еще пытаюсь обернуть голову вокруг него.
Очевидно, я хочу проверить каждую функцию и перейти к следующей функции, только если предыдущий тест пройден. И наоборот, если поле, например, пустое, сообщите пользователю и не переходите к следующей функции.
Вот пример функции checkEmailExists ():
function checkEmailExists() {
const email = $F('email');
if(email!=''){
const url = '/global/validate/?action=check-email-exists&e=' + email;
let result;
fetch(url)
.then(async function(data){
result = await data.text();
if(result == 'OK'){
setMessage('message', defaultMessage, 'classInfo');
$('email').addClassName('ok-field');
}
if(result == 'EXISTS'){
setMessage('message', 'Email address is already registered., 'classBad');
$('email').addClassName('bad-field');
}
if(result == 'INVALID'){
setMessage('message', 'Email address is invalid.', 'classBad');
$('email').addClassName('bad-field');
}
})
.catch(function(error) {
console.log(error);
});
}
}
Проблема в том, что я не уверен, как это сделать, может кто-нибудь помочь мне с правильным кодированием.
Приветствие.