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

从Javascript对象中的CSV检索解析数据(使用Papa解析),javascript,parsing,csv,asynchronous,callback,Javascript,Parsing,Csv,Asynchronous,Callback,我有点不好意思问这个问题,因为它看起来应该很明显,但我在处理异步问题方面相当薄弱,我对如何继续感到困惑 我正在使用papaparse()解析远程CSV。我想将解析结果保存在一个对象中,以便以后使用。这是我的密码: var dataset = {}; Papa.parse("http://path/to/some.csv", { download: true, dynamicTyping: true, complete: function(re

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

我正在使用papaparse()解析远程CSV。我想将解析结果保存在一个对象中,以便以后使用。这是我的密码:

var dataset = {};    

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

console.log(dataset);  

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

是否存在需要在函数外部使用dataset变量的原因?确保填充数据集的最简单方法是在填充数据集之后立即在“complete”函数中操作数据集

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

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

这正是我需要的重新定位。我还在学习回调和异步,所以这确实帮助我解开了它的神秘面纱。非常感谢。是的!在回叫中加入了魅力!非常感谢。由于某种原因,我似乎无法让它发挥作用。有人能在@colonelsanders帮我吗?我没办法解决这个问题,然后我找到了你的答案。它解决了一切!非常感谢你!