Async / Await Email Validation - PullRequest
       7

Async / Await Email Validation

0 голосов
/ 13 марта 2019

Я пытаюсь написать функцию, которая проверяет электронную почту, введенную в форму ввода, используя 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);
        });
    }
}

Проблема в том, что я не уверен, как это сделать, может кто-нибудь помочь мне с правильным кодированием.

Приветствие.

1 Ответ

0 голосов
/ 13 марта 2019

Вы проверяете, что функция электронной почты должна возвращать обещание, что она будет ожидаемой.

Итак, верните вызов извлечения.

...