【问题标题】:d3js v6 reading multiple csv with Promise.all returning 404d3js v6 读取多个 csv,Promise.all 返回 404
【发布时间】:2021-04-19 19:58:56
【问题描述】:

我是使用 d3 和加载数据的新手,但我遇到了一个错误,我找不到任何解决方案。 我正在尝试一次读取几个 csv 文件,过滤它们,并允许它们稍后用于绘制我的图表。注意,下面的代码用数据文件名和变量名进行了简化。

Promise.all([
    d3.dsv(";", "data/data1.csv"),
    d3.dsv(";", "data/data2.csv"),
    d3.dsv(";", "data/data3.csv"),
]).then(function(data) {
    var var1 = data[0].filter(d => d => d.Date_statistics.includes("-2-"));
    var var2 = data[1].filter(d => d => d.Municipality_name.includes("Amsterdam"));
    var var3 = data[2].filter(d => parseInt(d["Total Population"]) > 50000);

    console.log("result 1: ", var1)
    console.log("result 2: ", var2)
    console.log("result 3: ", var3)
}).catch(function(err) {
    // handle error here
    console.log(err)
});

我面临的问题是,当我将它添加到我的 js 文件中,并将它添加到我的 HTML 中时,控制台返回给我一个 GET 错误 404,未找到“data/data2.csv”(和 data3.csv 相同)。我不确定为什么会出现 404 错误,因为据我所知,我将数据正确加载为 csv,之后我尝试进行一些过滤以打印。

我尝试将放入的文件作为变量,并使用路径作为值,但这也不起作用。将所有 dsv 读取函数与它们各自的过滤和日志分开放置,而不是放在 Promise.all() 函数中,给我同样的结果,除了它现在确实打印的内容第一次过滤。

我解决问题的方式是否有问题(例如,我不应该在这里使用 Promise.all()),还是我遗漏了导致这些 404 错误的内容?

【问题讨论】:

    标签: javascript csv d3.js


    【解决方案1】:

    好吧,看来我毕竟犯了一个错误,当我将数据文件放入 d3.dsv(";", "...") 部分时,它们的名称有错误,名称是只是与实际数据文件的名称不匹配。这可以关闭。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-06
      • 2017-06-21
      • 2016-11-16
      • 2017-01-01
      • 1970-01-01
      • 2017-08-13
      • 2017-02-26
      相关资源
      最近更新 更多