私はのリストのCSVをロードしています。 CSVファイルをD3を使用してjavascriptにロードしています。javascriptを実行する前にD3で複数のCSVのロードが完了するようにするにはどうすればよいですか?
次のコードを実行すると、employees配列はコード内でまだ空になります。 D3がJavaScriptの処理を続行する前にデータのロードを完了するようにする正しい方法はありますか?
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 "[]"
私がChromeにページを読み込むと、コンソールにログオンして従業員をログすると、必ず名前でいっぱいの配列が返されます。最後の行でconsole.log(従業員)を実行するときに、どうすればいいのですか?
あなたは私が何をしようとしているより明確に見たい場合は、それがここにあります:https://でgithub.com/mkwng/d3-experiments/ – mkwng