我正在使用Papa Parse来读取通常有许多重复行的CSV文件。通过步骤回调,在将行添加到MySQL数据库之前,每行都会被POSTed到一个API,该API会检查该行是否重复。问题是,Papa Parse在前一行添加到数据库之前触发下一行(和POST请求)。由于重复的行通常彼此接近,所以我最终在数据库中得到了重复的条目。这在Papa Parse中是可以解决的吗?
可能的解决方案:让JSON编译并将每一行传递给一个异步函数,该函数等待每个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);
}
});
}
});
});
发布于 2017-07-21 09:57:59
Papa Parse支持pausing
和resuming
(在您发布问题时可能不支持)。分别使用pause()
和resume()
暂停和恢复。例如:
step: function(results, parser) {
parser.pause();
//do your stuff that needs to complete before next row is given
parser.resume();
}
https://stackoverflow.com/questions/34202770
复制相似问题