I implemented this:
It's possible to 'GET' multiple XML files with javascript?
However, my problem is more complex because I have a much larger number of xml files (40).
I made the promises array like so:
var promises = [ xmlPromise('data/sequence/xml/0.xml'),
xmlPromise('data/sequence/xml/1.xml'),
xmlPromise('data/sequence/xml/2.xml'),
xmlPromise('data/sequence/xml/3.xml'),
xmlPromise('data/sequence/xml/4.xml'),
etc.
When I look at the data in the xml files in the console log for:
for (i = 0; i < 40; i++) {
console.log(responses[i].value);
I notice that the files are not in the same order in the responses array as they were added to the promises array? Instead, the order seems to be completely random? It is important that the order of both the promises and responses arrays are the same. Because of what I want to do next with the data. Why is it not in the same order? Please help somebody.
== Additional ==
Here is the full code:
function xmlPromise(name) {
return Q.promise(function (resolve, reject, notify) {
$.ajax({
type: "GET",
dataType: "xml",
async: true,
url: name,
contentType: "text/xml; charset=UTF-8"
})
.done(function (data) {
resolve(data);
}).fail(function () {
reject();
});
});
};
var promises = [ xmlPromise('data/sequence/xml/0.xml'),
xmlPromise('data/sequence/xml/1.xml'),
xmlPromise('data/sequence/xml/2.xml'),
xmlPromise('data/sequence/xml/3.xml'),
xmlPromise('data/sequence/xml/4.xml'),
xmlPromise('data/sequence/xml/5.xml'),
xmlPromise('data/sequence/xml/6.xml'),
xmlPromise('data/sequence/xml/7.xml'),
xmlPromise('data/sequence/xml/8.xml'),
xmlPromise('data/sequence/xml/9.xml'),
xmlPromise('data/sequence/xml/10.xml'),
xmlPromise('data/sequence/xml/11.xml'),
xmlPromise('data/sequence/xml/12.xml'),
xmlPromise('data/sequence/xml/13.xml'),
xmlPromise('data/sequence/xml/14.xml'),
xmlPromise('data/sequence/xml/15.xml'),
xmlPromise('data/sequence/xml/16.xml'),
xmlPromise('data/sequence/xml/17.xml'),
xmlPromise('data/sequence/xml/18.xml'),
xmlPromise('data/sequence/xml/19.xml'),
xmlPromise('data/sequence/xml/20.xml'),
xmlPromise('data/sequence/xml/21.xml'),
xmlPromise('data/sequence/xml/22.xml'),
xmlPromise('data/sequence/xml/23.xml'),
xmlPromise('data/sequence/xml/24.xml'),
xmlPromise('data/sequence/xml/25.xml'),
xmlPromise('data/sequence/xml/26.xml'),
xmlPromise('data/sequence/xml/27.xml'),
xmlPromise('data/sequence/xml/28.xml'),
xmlPromise('data/sequence/xml/29.xml'),
xmlPromise('data/sequence/xml/30.xml'),
xmlPromise('data/sequence/xml/31.xml'),
xmlPromise('data/sequence/xml/32.xml'),
xmlPromise('data/sequence/xml/33.xml'),
xmlPromise('data/sequence/xml/34.xml'),
xmlPromise('data/sequence/xml/35.xml'),
xmlPromise('data/sequence/xml/36.xml'),
xmlPromise('data/sequence/xml/37.xml'),
xmlPromise('data/sequence/xml/38.xml'),
xmlPromise('data/sequence/xml/39.xml') ];
var results = [];
Q.allSettled(promises).then(function(responses) {
for (i = 0; i < 40; i++) {
console.log(responses[i].value);
results.push(responses[i].value);
}
});