从Javascript对象中的CSV中检索已解析的数据(使用Papa Parse)

时间:2014-10-08 21:06:59

标签: javascript parsing csv asynchronous callback

我有点不好意思问这个问题,因为它看起来应该是如此明显,但我在处理异步问题方面相当薄弱,而且我对如何处理感到困惑

我使用Papa Parse(http://papaparse.com/docs.html#remote-files)来解析远程CSV。我想将解析的结果存储在一个对象中以便以后使用。这是我的代码:

var dataset = {};    

    Papa.parse("http://path/to/some.csv", {
      download: true,
      dynamicTyping: true,
      complete: function(results) {
        dataset = results.data;
      }
    });

console.log(dataset);  

当然,这会导致将空对象记录到控制台。任何使用数据集的尝试都不起作用,因为当然,数据集对象在代码执行时并未实际接收到其数据。有人可以帮我重构或解释我是如何处理的吗?

1 个答案:

答案 0 :(得分:25)

是否有理由需要在函数外部使用数据集变量?确保填充数据集的最简单方法是操作“完成”数据集中的数据集。功能就在人们居住之后。

另一种方法是添加如下的回调:

function doStuff(data) {
    //Data is usable here
    console.log(data);
}

function parseData(url, callBack) {
    Papa.parse(url, {
        download: true,
        dynamicTyping: true,
        complete: function(results) {
            callBack(results.data);
        }
    });
}

parseData("tests/sample.csv", doStuff);