d3のキューdeferおよびawaitを使用して、いくつかのファイルを非同期にロードしようとしています。問題は、辞書にフェッチされたデータを格納し、ループ内でループで、各項目のためにそうしようとしている:myFuncというにおけるコールバック待ちの固定パラメータを追加
var myDictionary = {};
// e.g. hierarchy = ["State", "County"]
hierarchy.forEach(function(geo) {
queue()
.defer(d3.json, 'assets/data/geo/' + geo + '/' + geo + '.json')
.defer(d3.csv, 'assets/data/geo/' + geo + '/' + geo + '_info.csv')
.await(myFunc);
});
function myFunc(error, jsonData, csvData) {
// need access to geo
console.log(geo);
myDictionary[geo].jsonData = jsonData;
myDictionary[geo].csvData = csvData;
}
、私は中に適切なキーを埋めるために地理へのアクセスを希望します辞書は、.await.myFunc(geo)
の中にそれらを渡すと、undefined
がmyFuncの中に印刷されます。
この問題がJavascriptのコールバック関数、D3のawait()、またはその両方に関係しているかどうかわかりません。
推奨事項それはあなたのmyFuncというに渡されるようにするには、タスクとして、それを追加することができ
おかげ
私はこのアプローチを使用します、ありがとう! – Khorkhe