使用 PapaParse 下载多个文件?
Download multiple files using PapaParse?
我正在使用 PapaParse 从我的 JavaScript 脚本下载 CSV 文件,并且运行良好。
但是,我有一个页面需要下载两个文件然后才做一些工作,我想知道是否有比这更简洁的方法:
Papa.parse(url_seriesy, {
download: true,
header: true,
keepEmptyRows: false,
skipEmptyLines: true,
error: function(err, file, inputElem, reason) { // handle },
complete: function(y_results) {
Papa.parse(url_seriesx, {
download: true,
header: true,
keepEmptyRows: false,
skipEmptyLines: true,
error: function(err, file, inputElem, reason) { // handle },
complete: function(x_results) {
console.log(x_results.data);
}
});
}
});
这可行,但非常笨拙。还有什么我可以做的吗?也许我可以使用承诺?
如果我没理解错的话,你想解析每个文件,然后在收集到所有结果后做一些事情。有几种方法可以做到这一点,但这是我可以做到的一种方法(注意:我没有 运行 这段代码;它可能需要调整):
var files = ["file1.csv", "file2.csv"];
var allResults = [];
for (var i = 0; i < files.length; i++)
{
Papa.parse(files[i], {
download: true,
header: true,
skipEmptyLines: true,
error: function(err, file, inputElem, reason) { /* handle*/ },
complete: function(results) {
allResults.push(results);
if (allResults.length == files.length)
{
// Do whatever you need to do
}
}
});
}
我正在使用 PapaParse 从我的 JavaScript 脚本下载 CSV 文件,并且运行良好。
但是,我有一个页面需要下载两个文件然后才做一些工作,我想知道是否有比这更简洁的方法:
Papa.parse(url_seriesy, {
download: true,
header: true,
keepEmptyRows: false,
skipEmptyLines: true,
error: function(err, file, inputElem, reason) { // handle },
complete: function(y_results) {
Papa.parse(url_seriesx, {
download: true,
header: true,
keepEmptyRows: false,
skipEmptyLines: true,
error: function(err, file, inputElem, reason) { // handle },
complete: function(x_results) {
console.log(x_results.data);
}
});
}
});
这可行,但非常笨拙。还有什么我可以做的吗?也许我可以使用承诺?
如果我没理解错的话,你想解析每个文件,然后在收集到所有结果后做一些事情。有几种方法可以做到这一点,但这是我可以做到的一种方法(注意:我没有 运行 这段代码;它可能需要调整):
var files = ["file1.csv", "file2.csv"];
var allResults = [];
for (var i = 0; i < files.length; i++)
{
Papa.parse(files[i], {
download: true,
header: true,
skipEmptyLines: true,
error: function(err, file, inputElem, reason) { /* handle*/ },
complete: function(results) {
allResults.push(results);
if (allResults.length == files.length)
{
// Do whatever you need to do
}
}
});
}