我正在尝试从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); }
如果我使用D3 v4,它可以正常工作,但是如果我切换到v5,它将不再起作用。有人可以向我解释如何修改代码以使其与D3 v5兼容吗?
d3 v5使用访存API并返回要求以下代码的Promise。
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方法,并且不返回要求此代码的Promise
d3.csv('yourcsv.csv', function(data) { //whole data set // draw chart here })
csv加载是异步的,因此请确保在csv函数中运行图表代码。