API Async から一連のデータをロードしようとしています。すべてのデータがロードされたら、すべてのデータがロードされたというイベントをトリガーしたいと考えています。私が抱えている問題は、使用している API が応答オブジェクトの数を 5 つに制限していることです。そして、30 ~ 40 個の応答オブジェクトを取得する必要がある可能性があります。
だから私がしたいのは、データ項目をループし、5 つの項目ごとに要求を行う when - then ステートメントを作成し、すべての項目が読み込まれたときに、読み込まれたイベントを発生させたいということです。私が抱えている問題は、ajax リクエストが成功する前に when-then ステートメントが完了していることです。
私が試したコードに。
function loadsLotsOfStats(stats, dataType, eventName, dataName, callback) {
var groupedStats = [];
while (stats.length > 0) {
groupedStats.push(stats.splice(0, 5).join('/'));
}
j$.when(
groupedStats.forEach(function (d) {
loadJSONToData(model.apiUrl.replace("{IDS}", d), "json", "", dataName, function (d) { /*console.log(d);*/ }, true)
})
).then(function () {
j$(eventSource).trigger('dataLoaded', eventName);
});
loadJSONToData 関数は基本的に、Async $.ajax の単なるラッパー関数です。
そうそう、データが実際にロードされる前にイベントがトリガーされます。また、何らかの理由で for ループを when( ステートメントに入れようとすると、構文エラーが発生しますか?
イベントをトリガーする前に、大量の Ajax リクエストを作成し、それらがすべて完了するまで待機する方法について、誰かアドバイスはありますか? または、私が現在持っているものを修正するために離れていますか?
助けてくれてありがとう。