function loadDropDown(targetControl, url, type,data)
{
$.ajax({
url: url,
type: type,
data: data,
cache: false,
async:true,
dataType: 'json',
success: function (data) {
"do some thing."
},error: function (data) {
"do some thing."
}
});
}
并致电
loadDropDown ('#CountryId', '/Common/Country','GET');
loadDropDown('#StateId', '/Common/State','GET',data);
loadDropDown('#District', '/Common/District','GET',data);
答案 0 :(得分:3)
loadDropDown
应该返回一个promise,你可以在解析promise时调用下一个函数。
function loadDropDown(targetControl, url, type,data)
{
return $.ajax({
url: url,
type: type,
data: data,
cache: false,
async:true,
dataType: 'json',
success: function (data) {
"do some thing."
},error: function (data) {
"do some thing."
}
});
}
loadDropDown('#CountryId', '/Common/Country','GET').then(function() {
loadDropDown('#StateId', '/Common/State','GET',data).then(function() {
loadDropDown('#District', '/Common/District','GET',data);
})
});
答案 1 :(得分:0)
async: true
是默认设置,意味着在后台按任意顺序发生。
根据标题中的问题,您希望async: false
代码同步。
如果这不准确,请填写更多详细信息。
由于您在异步时需要同步行为,请尝试在第一个成功回调中调用第二个load()函数。它需要一些仔细的编码以避免无限循环。
只需一秒钟,我将以一个例子更新我的回答。
编辑:@Barmar打了一拳,尝试他们的解决方案!