我正在使用 Papa Parse 来读取通常有许多重复行的 CSV 文件。 通过 STEP 回调,每行都会被 POST 到一个 API,该 API 在将其添加到 MySQL 数据库之前检查该行是否重复。问题是,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);
}
});
}
});
});
最佳答案
Papa Parse 支持暂停
和恢复
(也许在您发布问题时不支持)。您可以分别使用 pause()
和 resume()
暂停和恢复。例如:
step: function(results, parser) {
parser.pause();
//do your stuff that needs to complete before next row is given
parser.resume();
}
关于mysql - 爸爸解析太快了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34202770/