D3.js - 从CSV文件加载数据并在函数调用之外使用它

时间:2013-09-18 11:13:08

标签: javascript d3.js

看来,由于调用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

1 个答案:

答案 0 :(得分:0)

可能的解决方案: d3.csv(...)调用是异步的,因此当你到达“console.log(...)”时它可能无法完全执行。

建议,作为中间黑客,将睡眠超时放置几秒钟,看看是否有帮助。

如果确实如此,您可能希望重新构建代码以考虑调用的异步性质。这可能意味着从d3.csv()调用

中处理所有逻辑