为什么我的D3.csv()方法返回“未定义”

时间:2020-09-14 09:43:10

标签: javascript d3.js

我只有一个csv文件,我正在尝试使用异步函数获取数据,但是我不确定。

<script>
    async function data(pathToCsv) {
        return await d3.csv(pathToCsv, function (data) {
            data.year = +data.year
            data.running_total = +data.running_total
            data.date = new Date(data.year, 0)
            return data
        })
    };
    let dataset = data('q3.csv');
    console.log(dataset.year);
</script>

2 个答案:

答案 0 :(得分:1)

这里的问题是您的数据函数正在返回一个诺言,因此从一个诺言对象访问year将返回undefined,因此在调用{{ 1}}

await

答案 1 :(得分:0)

我解决了。

<script>

    async function data(pathToCsv) {
        let dataset = await d3.csv(pathToCsv, function (d) {
            d.year = +d.year
            d.running_total = +d.running_total
            d.date = new Date(d.year, 0)
            return d
        })
        return dataset
    };

    data('q3.csv').then(function(d) {
        d.forEach(function(p){
            console.log(p.date.getFullYear());
        })
    });

</script>