Дело в том, что ковырять XMLLoad я не могу, а если делать так:
function insert(i){
XMLLoad(xmlFiles[i]);
insert(i +1);
}
insert(0);
То XMLLoad вызовется сразу несколько раз. Т.е. при вызове XMLLoad(xmlFiles[1]), еще не завершит свою работу XMLLoad(xmlFiles[0]), и все "сломается"..
пихать рекурсивный вызов в колбэк XMLLoad тоже не выход, по неким соображениям

Хочется сделать что-то вроде массива очереди, из которого будут браться аргументы, и подставляться в какую-то функцию, каждый следующий вызов которой будет происходить только после завершения предыдущего.