Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проблемы с порядком выполнения кода. (https://javascript.ru/forum/misc/34084-problemy-s-poryadkom-vypolneniya-koda.html)

CostaConquesta 19.12.2012 22:21

Проблемы с порядком выполнения кода.
 
var valueToReturn;

function Trololo(){
          
            $.post('maps/returnMePlz', {}, function(val){
                valueToReturn = val;
                alert(valueToReturn); // алерт1
                });
            alert(valueToReturn)  // алерт2
        }


Проблемы с порядком выполнения кода.
Срабатывает сначала "алерт2", а затем "алерт1". Свойственно в "алерт2" выдаёт undefined.
Как понимаю при встрече $.post'a он создаёт как отдельный поток выполнения программы и дальнейшая работа ф-ции и работа post'a идут паралельно. Как мне сделать фиксированный порядок выполнения?

читал про jquery.when(), но документацию нашёл только на английском, поэтому процедура вкуривание вопроса была усложнена

Hoshinokoe 19.12.2012 22:48

CostaConquesta,

Вот документация на русском языке.

$.post - отсылает асинхронный запрос на сервер. Это означает, что браузер не ждет ответа и начинает выполнять код дальше. Как только ответ от сервера будет получен, то вызовется функция, указанная в параметрах.

Если нужно сделать неасинхронный запрос, то необходимо установить async : false.
$.ajax({
    type: 'post',
    async: false,
    ...
});


Часовой пояс GMT +3, время: 10:51.