使用 Papa Parse 等待两个或更多文件加载
Wait for two or more files to load with Papa Parse
我在这里两次使用这个函数来加载csv数据:
http://papaparse.com/
Papa.parse("http://example.com/file.csv", {
download: true,
complete: function(results) {
console.log(results);
}
});
当两个文件都准备好后,我想执行另一个函数,该函数取决于两个文件的结果。我正在用标记设计地图样式。
我想到了 JavaScript 承诺。如果你有 2 个 csv files/urls?
,谁能告诉我它的样子
目前我激活了以下库:
Jquery 3.2.1
Papa Parse 4
最后,我知道:How to use Promises with PapaParse?
但是我不知道将代码放在哪里才能处理 2 个或更多文件。
您可以使用以下代码,如果这必须 运行 在较旧且没有本机承诺或箭头功能的浏览器中,您需要使用 babel 和 polyfills。
如果你有一个 url 数组,你可以这样做:
urls = ['path1.csv','path2.csv']
Promise.all(//pass array of promises to Promise.all
urls//you have an array of urls
.map(//map urls to promises created with parse
url=>
new Promise(//create one promise
(resolve,reject)=>
Papa.parse.parse(
url,
{
download: true,
complete:resolve,//resolve the promise when complete
error:reject//reject the promise if there is an error
}
)
)
)
)
.then(
function (results) {
console.log(results[0]) // log result from file 1
console.log(results[1]) // log result from file 2
}
)
.catch(//log the error
err=>console.warn("Something went wrong:",err)
)
我在这里两次使用这个函数来加载csv数据: http://papaparse.com/
Papa.parse("http://example.com/file.csv", {
download: true,
complete: function(results) {
console.log(results);
}
});
当两个文件都准备好后,我想执行另一个函数,该函数取决于两个文件的结果。我正在用标记设计地图样式。
我想到了 JavaScript 承诺。如果你有 2 个 csv files/urls?
,谁能告诉我它的样子目前我激活了以下库:
Jquery 3.2.1
Papa Parse 4
最后,我知道:How to use Promises with PapaParse? 但是我不知道将代码放在哪里才能处理 2 个或更多文件。
您可以使用以下代码,如果这必须 运行 在较旧且没有本机承诺或箭头功能的浏览器中,您需要使用 babel 和 polyfills。
如果你有一个 url 数组,你可以这样做:
urls = ['path1.csv','path2.csv']
Promise.all(//pass array of promises to Promise.all
urls//you have an array of urls
.map(//map urls to promises created with parse
url=>
new Promise(//create one promise
(resolve,reject)=>
Papa.parse.parse(
url,
{
download: true,
complete:resolve,//resolve the promise when complete
error:reject//reject the promise if there is an error
}
)
)
)
)
.then(
function (results) {
console.log(results[0]) // log result from file 1
console.log(results[1]) // log result from file 2
}
)
.catch(//log the error
err=>console.warn("Something went wrong:",err)
)