Всем, доброго времени суток. Есть следующее событие на клик:
$('.post-like').click(function(){
    var item_id = $(this).parents('.item').attr('id');
    var isVoted = false;
    //проверяем что пользователь уже проголосовал
    already_vote(item_id, isVoted);
    
    if(isVoted){
        //...
    }
    else{
        //...
    }
});
В функции already_vote() находится ajax запрос:
function already_vote(post_id, isVoted){
    $.ajax({
        url: '/ajax/post_like.php',
        type: 'POST',
        dataType: "json",
        data: {
            action: 'check',
            post_id: post_id
        },
    })
    .done(function(response){
        if(response.already_vote == 1){
            isVoted = true;
        }
    })
    .fail(function(xhr){
        console.log(xhr);
    });
}
Собственно нужно в событии click получить переменную isVoted. Простой return не работает, т.к. ajax асинхронный запрос. Знаю что можно просто использовать async: false, тогда работает как надо. Но эта фича считается устаревшей (о чем и сообщает консоль в браузере) и в перспективе может перестать работать. Нагуглил что правильно это делать через callback функции, но что-то не получается. Подскажите как нужно.