我正在使用PapaParse从外部(Web)源加载CSV文件,PapaParse被构造为一个包含在对象中的array.该数组的构造如下:

hazard: "Pepe"
impact: "PeepoLaugh"
issued: "11A Sunday"
person: "Pepe"
phenom: "Sadge"
polyid: 1
summary: "Lots of Text"
timing: "1P-4P Sunday"

执行此过程的相关函数如下:

function handleParsedData(data) {
            console.log('Parsed data:', data);
            return data;
        }
     function downloadCSV(callback) {
        Papa.parse("/oath/to/file.txt", {
            download: true, 
            header: true,
            delimiter: "|",
            dynamicTyping:
            complete: function(results) {
                var parsedData = results.data;
                handleParsedData(results.data);
                callback(parsedData);
            }
        });
     }
     function exportedCSV() {
        parsed = downloadCSV(function(parsedData) {
            console.log(parsedData);
            return parsedData
        });
     }
     var exports = exportedCSV();
     console.log(exports);

通过判断控制台日志(log)消息,我可以验证回调函数downloadCSV是否正常工作,该回调函数从函数handleParsedData调用触发此对象及其数组的控制台消息.为了再次判断这是否正常工作,我还验证了函数exportdCSV调用中包含的相同对象及其数组的第二条控制台消息.

我的问题扩展到在此函数外部使用此对象及其array.我已经分配了一个变量EXPORTS,该变量附加到EXPORTED CSV调用.当我在控制台日志(log)中判断此变量时,它返回为未定义.我可以采取哪些步骤在函数外部使用此数组?

推荐答案

您可以将downloadCSV()转换为异步函数,并将其与awaitthen()一起使用,以获得解析结果:

async function downloadCSV() {
  return new Promise((complete, error) => {
    Papa.parse("/oath/to/file.txt", {
        download: true, 
        header: true,
        delimiter: "|",
        dynamicTyping: ???,
        complete: result => complete(result.data),
        error
    });
  });
}

(async()=>{
  var exports = await downloadCSV();
  console.log(exports);
})();

// or

downloadCSV().then(exports => console.log(exports));

Javascript相关问答推荐

如何在使用fast-xml-parser构建ML时包括属性值?

在拖放时阻止文件打开

Regex结果包含额外的match/group,只带一个返回

优化Google Sheet脚本以将下拉菜单和公式添加到多行

变量的值在Reaction组件中的Try-Catch语句之外丢失

从包含数百行的表中获取更改后的值(以表单形式发送到后端)的正确方法是什么?

您能在卸载程序(QtInsteller框架)上添加WizardPage吗?

闭包是将值复制到内存的另一个位置吗?

连接到游戏的玩家不会在浏览器在线游戏中呈现

WP Bootstrap NavWaker:下拉菜单一次打开所有下拉菜单

覆盖加载器页面避免对页面上的元素进行操作

JavaScript不重定向配置的PATH

SPAN不会在点击时关闭模式,尽管它们可以发送日志(log)等

无法避免UV:flat的插值:非法使用保留字"

为什么在函数中添加粒子的速率大于删除粒子的速率?

如何用javascript更改元素的宽度和高度?

构建器模式与参数对象输入

KeyboardEvent:检测到键具有打印的表示形式

在点击链接后重定向至url之前暂停

如何在底部重叠多个div?