解決済み:各XMLHttpRequiest()を再帰的に実行することで問題を解決しました。基本的に私のxhr.onloadの終わりに、私は別の要求をして、私が私のデータの終わりに到達したかどうかを積極的にチェックします。JavaScriptでファイルを同期して呼び出すAPIを呼び出す
私はJavaScriptでかなり新しく、D3ライブラリにある程度親しんでいます。 D3ライブラリを使用してコンピュータからCSVファイルを読み込み、XMLHttpRequest()を使用してファイルからAPIに特定の情報を送信しようとしています。
私はJSONオブジェクトを返すAPIを呼び出すたびに、そのオブジェクトを後で使用するためにデータセットに格納します。私はデータセットを扱う前に私のCSVファイル全体を読み込んで処理するようにしようとしていますが、APIコールは非同期であるため問題に遭遇しています。
私のコードは次のようなものになります。そのまま
var myData = [];
d3.csv("myFile.csv", function(data)
{
for (var i = 0; i < data.length; i++)
// Get appropriate data from data object
// Make API call with XMLHttpRequest() and store in myData array
});
// Handle fully updated myData array here
、私のコードは、現在、ほぼ瞬時に私のループを通過すると、すべてのAPIが非同期呼び出しを行うと、その後待たずに自分のデータ上で動作するように進み、何か更新する。
このデータセットを使用する前に、CSVファイルが処理され、すべてのAPI呼び出しが返されていることを確認する方法はありますか?私はコールバック関数と約束を試みましたが、成功しませんでした。
あなたの質問を解決した場合は、他のユーザーが今後参照する回答としてここに回答を投稿してください。 – Sam