楽天APIを利用したコードを書いており。
_searchShopCodeの配列に格納されている要素の数をループ回数として、
$.ajaxを利用した処理をしております。
現在の記述だと、配列の要素数が多い場合、リクエスト制限のエラーにかかってしまう
ため、ループ処理を以下のようにしたいです。
ループ処理開始
↓
$.ajax(データの取得が完了するまで一時的にループを止める)
↓
データ取得完了後、ループ処理を続行、次のループへ
$.ajaxのコールバックを利用したら、なんとかならないかと思ったものの、
なかなか、良い解決法が思いつきません。
何か良い解決法はありますか?
よろしくお願いいたします。
`
$(function() {
var $itemList = $('#itemList');
var ItemData = function(args) { // 省略 }; ItemData.prototype.getItemData = function() { var itemsData; $.ajax({ url: 'https://app.rakuten.co.jp/services/api/IchibaItem/Search/20140222', type: 'GET', dataType: 'json', async: false, data: this.data }) .done(function(data) { itemsData = data.Items; }) .fail(function() { console.log("error"); }) .always(function() { console.log("end") }); return itemsData; }; var setData = function(itemsData) { // 省略 }; (function(ItemData, setData) { // 検索したいショップコードを格納 var _searchShopCode = ['norzy', 'moromoro', 'prs'], _shopData = [], _allItemData = []; if(_searchShopCode) { for (var i in _searchShopCode) { _shopData[i] = new ItemData({ shopcode: _searchShopCode[i] }); _allItemData.push( _shopData[i].getItemData() ); }; } else { _shopData[0] = new ItemData(); _allItemData[0] = _shopData[0].getItemData(); } setData(_allItemData); })(ItemData, setData);
});
`
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。