我試圖找出爲什麼這不起作用。我以爲我的理解範圍......將變量傳遞給函數並返回
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被設置爲true,但它不會改變它時,我提醒後它。我怎麼把這個傳回去?
謝謝!
到目前爲止,我現在有這樣的:
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
不理解那篇文章,太多了。 –
的要點是你需要從使用數據的成功處理函數中調用函數,或使用Promise。儘管如此,我強烈建議閱讀前幾個答案。您將學到很多關於異步代碼如何工作的知識。 – 4castle