【问题标题】:In D3, how to update global value by a Asynchronous function? [duplicate]在 D3 中,如何通过异步函数更新全局值? [复制]
【发布时间】:2020-01-23 01:30:32
【问题描述】:

我定义了一个空变量数据集: 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() 函数之外。我可以做些什么来实现我的目标?

【问题讨论】:

    标签: d3.js load-csv asynchronous-javascript


    【解决方案1】:

    您可以从任何其他范围访问全局范围

    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(dataset) 仍然打印为空。值没有改变。
    • console.log(window.dataset) 呢?
    • 同样的输出null
    猜你喜欢
    • 2018-04-30
    • 1970-01-01
    • 2020-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-28
    • 1970-01-01
    相关资源
    最近更新 更多