1

看来,由于调用 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 到 d3.js 中的数组

4

1 回答 1

0

可能的解决方案:d3.csv(...) 调用是异步的,因此在您到达“console.log(...)”时它可能尚未完全执行

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

如果是这样,您可能需要重构代码以考虑调用的异步性质。这可能意味着从 d3.csv() 调用中处理所有逻辑

于 2013-09-18T19:06:04.233 回答