D3.js 在D3中,如何通过异步函数更新全局值?

D3.js 在D3中,如何通过异步函数更新全局值?,d3.js,load-csv,asynchronous-javascript,D3.js,Load Csv,Asynchronous Javascript,我定义了一个空变量数据集: var数据集=[]; 通过d3.dsv函数从.csv文件加载数据,模式如下 d3.dsv(",", "filename.csv", function(d){ return { key1: value, key2: value, ... }; }).then(function(d) { //do something like dataset = d to update dataset; }); 我的目标是用.then()函数更新我在开始时定义的全局值数

我定义了一个空变量数据集: var数据集=[]; 通过d3.dsv函数从.csv文件加载数据,模式如下

d3.dsv(",", "filename.csv", function(d){
 return {
  key1: value,
  key2: value,
  ...
};
}).then(function(d) {
 //do something like dataset = d to update dataset;
});

我的目标是用.then()函数更新我在开始时定义的全局值数据集,这样我以后就可以使用更新后的数据集了,它位于.then()函数之外。我能做些什么来实现我的目标?

您可以从任何其他作用域访问全局作用域

window.dataset = null // define global variable
d3.dsv(",", "filename.csv", function(d){
 return {
  key1: value,
  key2: value,
  ...
};
}).then(function(d) {
 //do something like dataset = d to update dataset;
 window.dataset = d // assign 'd' to 'dataset'
});

console.log(数据集)仍打印为空。该值没有更改。
console.log(window.dataset)
?相同的输出为空