Javascript 未定义不是函数错误d3js

Javascript 未定义不是函数错误d3js,javascript,d3.js,Javascript,D3.js,我试图将我自己的数据加载到这个d3.js可视化中,但我不断得到错误未定义不是一个函数。唯一的区别是,我没有像他们那样定义freqData,而是定义了从数据文件加载我的 var freqData = d3.json("//sjs72/Users/ksdf/file.json", function(fdata) { console.log(fdata[0]); }); 它发生在生产线上 fData.forEach(function(d){d.total=d.freq.low+d.freq.mi

我试图将我自己的数据加载到这个d3.js可视化中,但我不断得到错误
未定义不是一个函数
。唯一的区别是,我没有像他们那样定义
freqData
,而是定义了从数据文件加载我的

var freqData = d3.json("//sjs72/Users/ksdf/file.json", function(fdata) {
  console.log(fdata[0]);
});
它发生在生产线上

fData.forEach(function(d){d.total=d.freq.low+d.freq.mid+d.freq.high;});
谁能帮我理解我哪里出了问题

编辑:我打的电话是dashboard(“#dashboard”,freqData);函数dashboard接受参数fData,在本例中,我将把freqData加载到该参数中

更新:

我更改了变量定义,结果代码如下所示

var freqData;
  function doSomethingWithData() {
  console.log(freqData);
}

d3.json("//sjs72/Users/ksdf/file.json", function(dataFromServer)    {
  freqData = dataFromServer;
  doSomethingWithData();
}

dashboard('#dashboard',freqData);
但现在我只是得到了错误

Uncaught SyntaxError: Unexpected identifier

在我脚本的最后一行

中,您的
d3.json()
调用缺少一个右括号。这很可能会给你带来问题。更正代码:

var freqData;
  function doSomethingWithData() {
  console.log(freqData);
}

d3.json("//sjs72/Users/ksdf/file.json", function(dataFromServer)    {
    freqData = dataFromServer;
    doSomethingWithData();
  }
); // Added this here
dashboard('#dashboard',freqData);

您所说的错误是发生在函数内部的
freqData
?根据错误,
fData
未定义。插入一个断点,看看发生了什么。这是因为您将数据分配给
freqData
,然后尝试引用
fData
?您的假设是错误的:
d3.json()
是一个异步函数,它不返回值。看见