Javascript 使用d3.json()获取数据不起作用,而使用JS async await.则起作用。。为什么?

Javascript 使用d3.json()获取数据不起作用,而使用JS async await.则起作用。。为什么?,javascript,d3.js,Javascript,D3.js,我试图从url中获取一些数据,以便在d3.js中使用。我无法使用d3.json(url,回调)获取数据。当我使用(ES8)async wait函数时,它工作正常 有人能帮我理解为什么吗?我做错了什么?谢谢 d3.json()示例: d3.json(“https://raw.githubusercontent.com/FreeCodeCamp/ProjectReferenceData/master/GDP-data.json,json=>{ const data=json.data;//日期和值

我试图从url中获取一些数据,以便在d3.js中使用。我无法使用
d3.json(url,回调)
获取数据。当我使用(ES8)
async wait
函数时,它工作正常

有人能帮我理解为什么吗?我做错了什么?谢谢

d3.json()示例:

d3.json(“https://raw.githubusercontent.com/FreeCodeCamp/ProjectReferenceData/master/GDP-data.json,json=>{
const data=json.data;//日期和值的数组
const lowestVal=d3.min(数据,d=>d[1]);
const highestVal=d3.max(数据,d=>d[1]);
控制台日志(最低位值);
控制台日志(最高值);
});
根据,
d3.json
fetch
一样返回承诺,而不是接受回调。(编辑:显然在v4中它接受了回调——这就是原因。)如果你使用了这个承诺,它就会起作用

您可以通过
async
/
wait
使用承诺,就像使用
fetch
一样,或者使用
then
和(因为您不会将链返回给任何其他处理它的人)
catch

异步
/
等待

(异步函数(){
试一试{
const jsonResponse=wait d3.json(“https://raw.githubusercontent.com/FreeCodeCamp/ProjectReferenceData/master/GDP-data.json");
const data=jsonResponse.data;//日期和值的数组
const lowestVal=d3.min(数据,d=>d[1]);
const highestVal=d3.max(数据,d=>d[1]);
控制台日志(最低位值);
控制台日志(最高值);
}捕获(错误){
console.log(错误);
}
})();

如果是CORS问题,它也会影响
获取
。谢谢!实际上,在d3.js v5中不再有回调函数,因为它返回一个承诺。在v5中工作时,我正在看D3V4中的一个示例:)