これは非常に単純な場合もあれば、非常に複雑な場合もありますが、現時点ではわかりません。
私は、Cineworld API に基づいて映画館のスケジュールを実行する小さな Web アプリを作成しています。
私は AJAX を使用してデータをプルバックしていますが、それで問題ありませんが、選択したすべての映画のすべての時間を取得し、後でそれらを操作したいところまで来ましたが、すべての結果を組み合わせると少し問題があることを証明します。
結果として得られる API 呼び出しは 1 つの映画でしか実行できないため、各映画のデータを順番に取得する必要があります。
アプリの現在の非常に初期の状態は、http: //www.lewishowles.co.uk/film/で確認できます。
主な内臓は次のファイルにあります: http://www.lewishowles.co.uk/film/js/lh.js
行42
と206
私の問題です。42
常に空の配列をログに記録しますが、206
毎回配列をログに記録しても問題ありません。ただし、ロギングは明らかにあまり役に立ちません。ログオン42
は、その上の関数のすべてのコードが完了するのを待っていないようです。
ご覧のとおり、グローバル配列を試してみましたが、値を返そうとしましたが、それでもログの実行が速すぎるようです。
Deferred は通常そうであるように見えますが、毎回異なる数の ajax 呼び出しがあり、Deferred を使用する回数を知る必要があるようです。
async を false に設定すると、それらが互いにつまずくのを止めましたが、それはこの状況を助けていません。
私が考えることができる2つのことは、セッションストレージを使用するか、後でアクセスする必要があるHTMLのどこかに各ループの結果を隠すことですが、どちらも同じ問題を起こしやすいようです.
もう 1 つのアイデアは、別のボタンを押してデータをロードする時間を確保することですが、これは別のステップを追加するものであり、理想的ではありません。
何か案は?