【问题标题】:Retrieve parsed data from CSV in Javascript object (using Papa Parse)在 Javascript 对象中从 CSV 检索解析的数据(使用 Papa Parse)
【发布时间】:2014-12-03 16:15:49
【问题描述】:

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

我正在使用 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);  

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

【问题讨论】:

    标签: javascript parsing csv asynchronous callback


    【解决方案1】:

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

    另一种方法是像这样添加回调:

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

    【讨论】:

    • 这正是我需要的重新定位。我还在学习回调和异步,所以这真的帮助我揭开了它的神秘面纱。谢谢!!!!
    • 是的!像在回调中添加魅力一样工作!谢谢!
    • 出于某种原因,我似乎无法让它工作。有人可以帮助我stackoverflow.com/questions/51013182/…
    • @colonelsanders 我无法理解这个问题,然后我找到了你的答案。它解决了一切!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2018-05-29
    • 1970-01-01
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多