Я пытаюсь понять, почему это не работает. Я думал, что я понял масштабы ...Передача переменной функции и обратно
var admin_data = false;
function getPlayerAdmin(){
var formData = {
'player_id' : $('#post-v').attr('data-val')
};
$.ajax({
type: 'post',
url: '/popins/player/controls',
data : formData,
dataType : 'json',
success: function(admin_data) {
if(admin_data.controls.is_admin == true){
admin_data = true;
}else{
admin_data = false;
}
}
});
}
alert(admin_data);
Так в основном admin_data создается истина, однако это не меняет его, когда я предупрежу его после. Как передать это обратно?
Спасибо!
До сих пор я это сейчас:
var admin_data = false;
adminData(function(admin_data) {
if(admin_data_vals.controls.is_admin == true){
admin_data = true;
}else{
admin_data = false;
}
});
function getPlayerAdmin(adminData){
var formData = {
'player_id' : $('#post-v').attr('data-val')
};
$.ajax({
type: 'post',
url: '/popins/player/controls',
data : formData,
dataType : 'json',
success: adminData
},
error : function(jqXHR, textStatus, errorThrown){
console.log(jqXHR);
}
});
}
alert(admin_data);
третья попытка:
var admin_data = false;
function getPlayerAdmin(admin_data){
var formData = {
'player_id' : $('#post-v').attr('data-val')
};
$.ajax({
type: 'post',
url: '/popins/player/controls',
data : formData,
dataType : 'json',
success: function(admin_data_vals, admin_data) {
if(admin_data_vals.controls.is_admin == true){
admin_data = true;
}else{
admin_data = false;
}
},
error : function(jqXHR, textStatus, errorThrown){
console.log(jqXHR);
}
});
}
getPlayerAdmin();
alert(admin_data);
Возможный дубликат [Как вернуть ответ от асинхронного вызова?] (Http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an -асинхронный вызов) – 4castle
Не понимаю, что сообщение, слишком много происходит. –
Суть в том, что вам нужно вызвать функцию внутри обработчика успеха, который использует данные, или использовать Promises. Я настоятельно рекомендую прочитать первые несколько ответов. Вы узнаете много нового о том, как работает асинхронный код. – 4castle