【发布时间】:2023-03-29 04:50:01
【问题描述】:
我使用 D3.js 制作了一个小图表。
对于不同类型的输入数据类型,有 3 种不同类型的加载函数。
我的图表可以在任何这些数据集上呈现,一次一个基于传递给渲染函数的参数。
数据加载代码是异步的,这会产生问题,因为我的渲染函数甚至在数据完全加载之前就开始绘制。
我给出了单独的加载函数,而不是在渲染函数中调用它们,因为用户可能只想先加载数据集,然后再渲染图表。
我想在开始绘制之前等待一个标志,并在所有数据集上传后设置这个标志,但在我看来很难看,因为无限循环。
在设计方面有什么想法可以用来完成这项工作吗?
var visualization = new Chart()
.width(1000)
.height(1000)
.loadDissimilarityMatrix('dataSet1.csv')
.loadAdjacencyMatrix('dataSet2.csv')
.loadLaplacianMatrix('dataSet3.csv')
.render('Dissimilarity')
// .render('Adjacency') for using the adjacency dataset.
【问题讨论】:
-
是的,您不能这样做,您需要将 d3 代码放在您的 csv 回调中。
标签: javascript design-patterns asynchronous d3.js