我正在使用Papa Parse读取通常具有许多重复行的CSV文件。
通过STEP回调,每一行都将发布到API,该API在将该行添加到MySQL数据库之前会检查该行是否重复。问题是,Papa Parse在将上一行添加到数据库之前会触发下一行(和POST请求)。看到重复的行通常彼此靠近,我最终在数据库中找到了重复的条目。在Papa Parse中可以解决吗?

可能的解决方案:让JSON编译并将每一行传递给Async函数,该函数等待每个POST请求完成。

$.get('file.csv', function(data) {
    Papa.parse(data, {
        header: true,
        skipEmptyLines: true,
        step: function(results, parser) {
            var product = results.data[0];
            $.ajax({
                url: '/api/create',
                type: 'POST',
                data: $.param({'product':product}),
                success: function(result) {
                    console.log(result);
                }
            });
        }
    });
});

最佳答案

Papa Parse支持pausingresuming(在您发布问题时可能不支持)。您分别使用pause()resume()暂停和继续。例如:

    step: function(results, parser) {
        parser.pause();
        //do your stuff that needs to complete before next row is given
        parser.resume();
    }

09-25 11:35