@BuBux

Почему возвращает undefined при post запросе?

let email = document.querySelector('#email');

function checkNoExist(em, check) {
    $.post("/user/checkemail", {
        email: em,
        check: check
    }, onAjaxSuccess
    );
}

function onAjaxSuccess(data) {
    if (data == 0) return false;
    return true;
}

let re = checkNoExist(email.value, 1);
console.log(re);

В функции onAjaxSuccess data возвращает корректный результат. Но вот при выводе переменной re всегда undefined. В чём может быть ошибка? Читал, что вроде как console.log выводит результат до ответа post запроса. Но никак не понял как решить данную задачу.
  • Вопрос задан
  • 513 просмотров
Решения вопроса 1
@FTOH
В JavaScript запросы асинхронные. Результат запроса доступен внутри коллбека, который выполниться после запроса.
let email = document.querySelector('#email');

function checkNoExist(em, check) {
    return $.post("/user/checkemail", {
        email: em,
        check: check
    });
}

console.log('Вывод до запроса');
const promise = checkNoExist(email.value, 1);
console.log('Запрос отправлен, результата ещё нет');
promise.then(data => {
    console.log('Запрос выполнен успешно');

    const result = data !== 0
    console.log(result);
}).catch(error => {
   console.log('Получили ошибку', error)
})
console.log('Результата все ещё нет...');
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы