Проблемы с порядком выполнения кода.
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(), но документацию нашёл только на английском, поэтому процедура вкуривание вопроса была усложнена |
CostaConquesta,
Вот документация на русском языке. $.post - отсылает асинхронный запрос на сервер. Это означает, что браузер не ждет ответа и начинает выполнять код дальше. Как только ответ от сервера будет получен, то вызовется функция, указанная в параметрах. Если нужно сделать неасинхронный запрос, то необходимо установить async : false.
$.ajax({
type: 'post',
async: false,
...
});
|
| Часовой пояс GMT +3, время: 22:39. |