Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   поочередный запуск функций (https://javascript.ru/forum/events/29975-poocherednyjj-zapusk-funkcijj.html)

weeklyTea 19.07.2012 15:38

поочередный запуск функций
 
Очень долго искал, но так и не нашел подходящего решения.
Проблема такая: есть некая функция у сторонней библиотеки с названием XMLLoad. Эта функция забирает и парсит xml файлы с сервера. Есть массив xmlFiles с не известной заранее длинной, в котором лежат имена xml файлов. Мне надо вызывать функцию XMLLoad от каждого элемента xmlFiles так, чтобы каждый следующий вызов происходил только после того как предыдущий выполнился. Не подскажете как? )

Deff 19.07.2012 16:05

weeklyTea,
Делать рекурсивный запуск функции - по окончании основного тела
типо
var ArraIndex=0
function InsertArraIndexHTML (a) {
alert(a);
a++
InsertArraIndexHTML (a)
} InsertArraIndexHTML(ArraIndex)

weeklyTea 20.07.2012 07:22

Дело в том, что ковырять XMLLoad я не могу, а если делать так:
function insert(i){
    XMLLoad(xmlFiles[i]);
    insert(i +1);
}
insert(0);

То XMLLoad вызовется сразу несколько раз. Т.е. при вызове XMLLoad(xmlFiles[1]), еще не завершит свою работу XMLLoad(xmlFiles[0]), и все "сломается"..

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


Часовой пояс GMT +3, время: 11:57.