0
$(function() {
//hard coded for initial debugging usage, must add table to reference
var userPermissionLevelRequired = 31;
var currentUserDescription = $('.user-menu .hidden-xs').html(); //to get user description
var userList = null;
var table = null;
var userName = $.grep(userDetail, function (item) {
return item.Description === currentUserDescription;
});
getUserMembers();
/*$.ajax({
'url': '/Home/GetUserMembers',
'type': 'GET',
dataType: "json",
'success': function (data) {
userList = data;
populateDropDown(data);
debugger;
},
'error': function (request, error) {
alert("Request: " + JSON.stringify(request));
}
});*/
function setPermission() {
//do something...
}
function getUserMembers() {
$.ajax({
'url': '/Home/GetUserMembers',
'type': 'GET',
'dataType': 'json',
'async':'false',
'success': function (data) {
userList = data;
populateDropDown(data);
debugger;
//alert("data.length " + data.length);
setPermission();
},
'error': function (request, error) {
alert("Request: " + JSON.stringify(request));
}
});
}
コメントアウトされたajax呼び出しの後にコードを追加したかったのです。しかし、コードはajax呼び出しから戻る前にさらに実行されます。 ajax呼び出しの後にsetPermissionを実行する唯一の方法は、呼び出しをajaxの成功関数に入れることでした。なぜ私はこれをしなければならなかったのですか?jQuery strange hoisting/initializing behavior
「javascript」が非同期であるため、 –
@Bhavik Patel - 本当に簡単です。このような状況に対処する他の方法はありますか?私がそれを受け入れることができるように答えを出してください –