JQuery deferred chain tasks

Добрый вечер, уважаемые форумчане. В ходе написания скрипта для определенной задачи я наткнулся на сложность. Нужна помощь. Итак, работаю с jQuery.DeferredЗадача - несколько независимых очередей ajax-запросов с задержкой. Подробнее: - есть $.Deferred объект, реализующий очередь ajax запросов с определенными параметрами. По отдельности такие "цепочки" работают отлично. - необходимо запустить выполнение нескольких таких deferred-объектов в цикле, но с задержкой. Т.е. первый запускается сразу, остальные через N-секунд. - "проблема" в том, что выполнение всех запросов асинхронно и отсчет задержки нужно начинать после завершения работы первой очереди.
function test () {
 var df = $.Deferred();
/* ... выполняется цепочка ajax-запросов, после завершения которых вызывается df.resolve();*/

 return df.promise();
};

var obj = test();

//для примера
obj.done(function() {
//do something
});
А теперь нужно реализовать запуск этих объектов один за другим НО с определенной задержкой. Количество "звеньев" этой цепочки зависит от кол-ва элементов массива Array. При каждом выполнении выбирается первый элемент последством Array.shift();*ниже приведен НЕ работающий код, который собственно и нужно заменить рабочим Что-то типа такого.
$.when(test()).done(function() {
 var callback = this.done;
 if(array.length > 0) {
 setTimeout(function() {
 $.when(test()).done(callback);
 }, 5000);
 } else {
 //end
 }
});
p.s. я слаб в JS, если что-то не так сильно не ругайте. Буду рад подсказкам и наставлениям на правильный путь.Заранее всем спасибо
1 ответ

Решение найдено