Javascript 如何检查嵌套的$.getJSON请求何时已完成运行?

Javascript 如何检查嵌套的$.getJSON请求何时已完成运行?,javascript,jquery,Javascript,Jquery,可能重复: 下面的函数在文档就绪时运行所有这些代码,但我正在尝试在这些代码中的所有数据完成后运行其他函数 function loadZonesDistrictsStoresData(){ $.getJSON('/CampaignMgmt/GetZonesByClient', { 'clientid': clientid }, function (zones){ $.each(zones, function(index, zoneid){

可能重复:

下面的函数在文档就绪时运行所有这些代码,但我正在尝试在这些代码中的所有数据完成后运行其他函数

function loadZonesDistrictsStoresData(){
        $.getJSON('/CampaignMgmt/GetZonesByClient', { 'clientid': clientid }, function (zones){
            $.each(zones, function(index, zoneid){
                var li_tag = '<li id="'+ zoneid +'"> <label><input id="'+zoneid+'" data-id="'+zoneid+'" onchange="zones.selectZone(this.value)" type="checkbox" name="zone_'+zoneid+'" value="'+ zoneid +'"><span>' + zoneid +'</span> </label></li>';
                $("ul.zones").append(li_tag);
                $.getJSON('/CampaignMgmt/GetDistrictsByZone', {'clientid': clientid, 'zone': zoneid }, function(data){
                    zone_object[zoneid] = data;
                    $.each(data, function(index, districtid){
                        $.getJSON('/CampaignMgmt/GetStoresByDistrict', {'clientid': clientid, 'district': districtid }, function(stores){
                            districts_object[districtid] = stores;
                        });
                    });
                });
            });
        });
    }
函数加载区DistrictionsStoresData(){
$.getJSON(“/CampaignMgmt/GetZonesByClient”,{'clientid':clientid},函数(区域){
$。每个(分区、功能(索引、分区ID){
var li_tag='
  • “+zoneid+'
  • ”; $(“ul.zones”)。附加(li_标签); $.getJSON(“/ActivityMgmt/GetDistrictsByZone”,{'clientid':clientid,'zone':zoneid},函数(数据){ 分区对象[zoneid]=数据; $.each(数据、函数(索引、分区ID){ $.getJSON(“/ActivityMgmt/GetStoresByDistrict”,{'clientid':clientid,'district':districtid},函数(存储){ districts\u对象[districtid]=门店; }); }); }); }); }); }
    和的可能重复。可能使用
    .done
    ,这是很多ajax。有没有办法在后端合并调用?如果没有
    ,则.done
    很可能会满足您的需要。您可以使用@diEcho提到的延迟对象,或者使用jQuery.queue()和jQuery.dequeue()自定义队列