看来,由于调用 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
最佳答案
可能的解决方案: d3.csv(...) 调用是异步的,因此当您到达“console.log(...)”时它可能尚未完全执行
建议,作为中间黑客,设置 sleep 超时几秒钟,看看是否有帮助。
如果是这样,您可能需要重组代码以考虑调用的异步性质。这可能意味着从 d3.csv() 调用内部处理所有逻辑
关于javascript - D3.js - 从 CSV 文件加载数据并在函数调用之外使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18870716/