看来,由于调用d3.csv时回调的异步性质,回调内部的变量无法在外部访问。有解决方法吗?
这是我的代码 -
var cprices;
d3.csv("../data/crudeprices.csv", function(data){
cprices = data;
getCrudePrices(data);
});
function getCrudePrices(data){
for(var i = 0; i < data.length; i++) {
//cprices.push(data[i].price);
//console.log(cprices[i]);
}
}
console.log("cprices " + cprices);
我想读取csv文件并将数据加载到回调之外的数组中。但似乎不支持这一点。有解决方案/解决方法吗? 参考。 - csv to array in d3.js
答案 0 :(得分:0)
可能的解决方案: d3.csv(...)调用是异步的,因此当你到达“console.log(...)”时它可能无法完全执行。
建议,作为中间黑客,将睡眠超时放置几秒钟,看看是否有帮助。
如果确实如此,您可能希望重新构建代码以考虑调用的异步性质。这可能意味着从d3.csv()调用
中处理所有逻辑