Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript D3.js-从CSV文件加载数据并在函数调用外部使用_Javascript_D3.js - Fatal编程技术网

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

Javascript D3.js-从CSV文件加载数据并在函数调用外部使用,javascript,d3.js,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++) {

似乎,由于调用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文件并将数据加载到回调外部的数组中。但这似乎不受支持。是否有解决方案/解决方法? 参考-

可能的解决方案: d3.csv。。。调用是异步的,所以当您到达console.log时,它可能不会完全执行

建议,作为一个中间黑客,把睡眠暂停几秒钟,看看这是否有帮助


如果是这样的话,您可能希望重新构造代码,以考虑调用的异步性质。这可能意味着从d3.csv调用内部处理所有逻辑

您尝试过吗?它应该可以工作,因为您在回调中调用函数。虽然我不知道你对我有什么打算。将数据分配给cprices,然后将数据推送到cprices。您只需在异步回调的作用域之外声明存储数据的变量。我已经尝试过很多次了。但它不起作用。在我看到作业不起作用后,我试着推送数据。我还在d3.csv之外声明变量cprices。用我声明变量的行更新了代码