我試圖用d3的隊列異步加載一些文件,推遲並等待。問題是試圖在一個循環中這樣做,並在循環的每個項目,存儲在字典中所取得的數據:添加固定的參數來等待回調
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;
}
在myFunc的
,我想獲得地理填寫在相應的鍵字典,但是在.await.myFunc(geo)
內傳遞它們將在myFunc中打印undefined
。
我不知道這個問題是否屬於Javascript的回調函數,或D3的await(),或兩者兼而有之。
有什麼建議嗎?
感謝
我將使用這種方法,謝謝! – Khorkhe