Вам не нужно ничего этого делать. Я столкнулся с той же проблемой с моим проектом. то, что вы делаете, это делаете вызов функции внутри обратного вызова on success для сброса глобальной переменной. Пока вы установили асинхронный javascript в false, он будет работать правильно. Вот мой код Надеюсь, это поможет.
var exists;
//function to call inside ajax callback
function set_exists(x){
exists = x;
}
$.ajax({
url: "check_entity_name.php",
type: "POST",
async: false, // set to false so order of operations is correct
data: {entity_name : entity},
success: function(data){
if(data == true){
set_exists(true);
}
else{
set_exists(false);
}
}
});
if(exists == true){
return true;
}
else{
return false;
}
Надеюсь, это поможет вам.