Более современный подход - использовать обещания.
Вы можете сократить повторение кода, создав одну функцию, которая передается в массиве url и step, чтобы передать и обернуть вызов Papa.parse()
в обещании, которое разрешается в обратном вызове complete
.
Затем используйте Promise.all()
для вызова _setupSearchOptions()
после разрешения всех трех обещаний
Что-то вроде:
function parseCsv(url, stepArr){
return new Promise(function(resolve, reject){
Papa.parse(url, {
download:true,
step: function(row){
stepArr.push(row.data)
},
complete: resolve
});
});
}
function loadData(){
const nodeReq = parseCsv("Data/CSV1.csv", NodeData);
const edgeReq = parseCsv("Data/CSV2.csv", EdgeData);
const headReq = parseCsv("Data/CSV3.csv", HeadendArr);
Promise.all([ nodeReq, edgeReq, headReq]).then(_setupSearchOptions);
}
Обратите внимание, что обработки ошибок не былорассматривается здесь.Предположительно, apa Papa.parse также имеет некоторый коллбэк с ошибкой или ошибкой, который вы бы использовали для вызова reject()
и использования catch()
с Promise.all()
для обработки этого сбоя