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

标签 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

最佳答案

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

建议,作为中间黑客,设置 sleep 超时几秒钟,看看是否有帮助。

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

关于javascript - D3.js - 从 CSV 文件加载数据并在函数调用之外使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18870716/

相关文章:

javascript - React-Google-Maps 重构错误 - `not a function`

javascript - 如何使用 javascript 设置边框样式?

javascript - 如何在 Angular js 中返回 html 代码作为过滤器的输出

javascript - 未在用户电子邮件中收到确认码

javascript - 当鼠标悬停在 D3 上时显示文本

javascript - D3.js defs 和 url() 不起作用

javascript - d3 ClipAngle 方法到底有什么作用?

javascript - jQuery UI 可调整大小 - 超过 minWidth、maxWidth、minHeight、maxHeight 时触发事件

javascript - d3.js 双击不释放节点

javascript - d3转换会改变哪些属性?