变量范围在d3 javascript

前端之家收集整理的这篇文章主要介绍了变量范围在d3 javascript前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想通过使用以下代码获取全局变量中的数据:
var data;
d3.json ( "file.json",function(json) {
  data = json;
  console.log(data); //defined
});
console.log(data); //undefined

但问题是我只是在d3.json函数中定义数据变量,但是它是未定义的.
我该怎么解决这个问题?

谢谢

解决方法

因为d3请求(如d3.json)是异步的,所以最好的做法是在请求回调中包含所有依赖于外部请求的代码,确保该代码在执行前可以访问数据. From the D3 docs:“当异步加载数据时,依赖于加载的数据的代码通常应在回调函数中.

所以一个选择是将所有的代码放在回调函数中.如果您想将代码分成几部分,您还可以将请求中的响应传递给单独的函数,如下所示:

function myFunc(data) {
    console.log(data);
}

d3.json('file.json',function (data) {
    var json = data;
    myFunc(json);
}
原文链接:https://www.f2er.com/js/151067.html

猜你在找的JavaScript相关文章