それぞれにいくつかの合計データが含まれているAPIを2回呼び出す必要があり、そのあと繰り返し処理が必要になります。コール1は、2つのjsonpオブジェクトを取得します。
[{
"id": 17,
"name": "A",
"campaign_code": "CAP20481"
},{
"id": 18,
"name": "B",
"campaign_code": "CAP20481"
}]
コール2は、最初の呼び出しのIDを使用して整数を取得します。私はそれに対応する "名前"と整数が必要です。これまでのところ、私が持っている:
function getStoreCounts() {
var campaignID = $("input[title='Campaign ID']").val();
var storeLists = $.ajax({
type: "GET",
dataType: "jsonp",
url: "/apiIndex?callback=?&campaign_code=" + campaignID.toString(),
}),
storeCount = storeLists.then(function(data) {
$.each(data,function(i,storeList){
$.extend(storeList,{stores:''});
var getCount = $.ajax({
type: "GET",
dataType: "jsonp",
url: "/apiStoreCount?callback=?&list_id=" + storeList.id.toString(),
});
getCount.done(function(count) {
storeList.stores = count;
});
});
return data;
});
storeCount.done(function(data) {
console.log(data);
$.each(data,function(i,tierCount){
console.log("Tier: "+tierCount.name);
console.log("Stores: "+tierCount.stores);
});
});
}
最終done
約束リターンで私は、全体のデータ配列をログアウトするとき、私は、各オブジェクトを格納するための値をそのまま取得します。しかし、配列内の各オブジェクトを繰り返し処理しようとすると、ストア値が失われてしまいます。 Chromeからの添付ファイル。
呼び出し側の結果を使用します。あなたはそれらの約束を配列として返し、それらをすべて待つ必要があります。また、1回のリクエストですべての情報を返すと、これはずっと簡単になり(サーバーの負担も軽くなります) –