Ajax-вызовы являются асинхронными, что означает, что они вызываются, но ожидают завершения выполнения. В основном ваше предупреждение срабатывает до того, как запрос ajax завершится, и запустите функцию обратного вызова, чтобы изменить вашу переменную.
Лучшее, что вы можете сделать, это на самом деле передать функцию, запускаемую после завершения запроса ajax. Это также устраняет необходимость в глобальных переменных, которые не одобряются, так как другие плагины, сценарий могут изменить свое состояние и оставить ваш сценарий открытым для ошибок, недостатков и т. Д.
* 1005 например *
function foobar(){
//call function to do post request and also pass a function to run
//when post has returned
runPostRequest( callbackFn );
}
function runPostRequest(callback){
$.post( '/foo', callback );
}
function callbackFn( data ){
console.log('post request complete');
}