Не выполнять код, пока не выполнится Ajax-запрос

По умолчанию, все Ajax-запросы выполняются асинхронно, т.е. при отправке данных, код продолжает выполнятся дальше не дожидаясь ответа или выполнения функции.

Чтобы «остановить» JavaScript, пока не выполнится Ajax-запрос, к методу $.ajax() надо добавить свойство async.

var ajax = $.ajax({
    type: 'POST',
    url: 'handler.php',
    async: false, // выполнение кода только после ответа от Ajax-запроса
    data: {
        lang: 'JavaScript',
        library: 'jQuery'
    }
});