मैं डी 3 का उपयोग कर जावास्क्रिप्ट में अन्य CSV फ़ाइलों की सूची का एक CSV लोड कर रहा हूं।मैं जावास्क्रिप्ट चलाने से पहले डी 3 को कई सीएसवी लोड करने के लिए कैसे सुनिश्चित करूं?
जब मैं निम्नलिखित कोड चलाता हूं, तो कर्मचारी सरणी कोड में तब तक खाली होती है जब तक यह कोड में नहीं पहुंच जाती है। यह सुनिश्चित करने का कोई सही तरीका है कि जावास्क्रिप्ट जारी रखने से पहले डी 3 डेटा लोड करना समाप्त कर देता है?
var employees = [];
//Retrieve the file list of all the csvs in the data directory, then run a callback on them
function retrieveList(url,callback) {
d3.csv(url,function(data) {
callback(data);
})
}
//Parse a file list, and then update the employee array with the data within
function parseList(filenames){
filenames.forEach(function(d) {
d3.csv(d.filename,function(data) {
data.forEach(function(d) employees.push(d.name));
}
}
}
//Run this code
var filenamesUrl = "http://.../filenames.csv"
retrieveList(filenamesUrl, parseList);
console.log(employees); //This logs "[]"
अगर मैं क्रोम, में पृष्ठ लोड जब मैं कंसोल में जाने के लिए और कर्मचारियों को लॉग इन करें, यकीन है कि पर्याप्त यह नाम से भर देता है देता है। आखिरी पंक्ति पर जब मैं console.log (कर्मचारी) चलाता हूं तो मैं उस मामले को कैसे बना सकता हूं?
आप अधिक स्पष्ट रूप से मैं क्या करने की कोशिश कर रहा हूँ देखने के लिए चाहते हैं, तो यह यहाँ है: https: // github.com/mkwng/d3-experiments/ – mkwng