I have an Object like this
JSON_DATA = {
"EVENT" : "data/sequence/sequenceEvent.json",
"CHAT" : "data/sequence/sequenceChat.json",
}
I would like to load those value so I do this
LoadJSON(JSON_DATA, function(data){
var DATA = data;
});
function LoadJSON(jsons, callback){
var counterLoaded = 0;
var counterToLoad = Object.keys(jsons).length;
var parsedData = {};
for(var key in jsons){
ajax.get(jsons[key], "", function(data){
parsedData[key] = JSON.parse(data);
counterLoaded++;
if(counterLoaded == counterToLoad){
callback(parsedData);
}
}, true)
}
}
Now, has I know I have a closure problem, like key is always the last one.
But, I searched on the internet, and expect a setTimeOut OR a function like this
function LoadJSON(jsons, callback){
var counterLoaded = 0;
var counterToLoad = Object.keys(jsons).length;
var parsedData = {};
for(var key in jsons){
ajax.get(jsons[key], "", (function(key){
parsedData[key] = JSON.parse(data);
counterLoaded++;
if(counterLoaded == counterToLoad){
callback(parsedData);
}
})(key), true)
}
}
It would not work, but in my problem, I need to pass also the parameter data.
How can I achieve that ?