如何在D3V5中从csv文件加载数据

ar7v8xwq  于 2021-09-13  发布在  Java
关注(0)|答案(2)|浏览(205)

我试图从d3中的csv文件加载数据;我有以下代码:

function update (error, data) {
    if (error !== null) {
        alert ("Couldn't load the dataset!");
    } else {
        //do something
    };

function changeData () {
    d3.csv ("data/dataset.csv", update);
}

如果我使用D3V4,它工作得很好,但如果我切换到v5,它就不再工作了。有人能给我解释一下如何修改代码使其与D3V5一起工作吗?

jljoyd4f

jljoyd4f1#

D3V5使用fetch api并返回一个承诺,该承诺需要以下代码。

d3.csv('yourcsv.csv')
  .then(function(data) {
      // data is now whole data set
      // draw chart in here!
  })
  .catch(function(error){
     // handle error   
  })

以防将来人们想要v4。另一方面,D3V4使用xmlhttprequest方法,并且不返回需要此代码的承诺

d3.csv('yourcsv.csv', function(data) {
    //whole data set
    // draw chart here
})

csv加载是异步的,因此请确保在csv函数中运行图表代码。

oxcyiej7

oxcyiej72#

@pmkro的答案很好,但是如果您想使用es7 async/await而不是promise,那么:

async function doThings() {
  const data = await d3.csv('yourcsv.csv');
  // do whatever with data here
}

doThings();

相关问题