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

Retrieve parsed data from CSV in Javascript object (using Papa Parse)

本文关键字:使用 数据 Papa Parse 对象 Javascript CSV 检索      更新时间:2023-09-26

我有点不好意思问这个问题,因为它看起来应该很明显,但我在处理异步问题方面很弱,我对如何继续感到困惑。

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

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

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

是否有原因需要在函数之外使用数据集变量?确保数据集被填充的最简单方法是在填充后立即在"完整"函数中操作数据集。

另一种选择是添加这样的回调:

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);