jQuery: выполнять массив функций последовательно (как отложенные, так и не отложенные)
Я довольно новичок в использовании Promises, и мне тяжело оборачиваться вокруг отложенных jQuery.
В настоящее время у меня есть массив функций, которые я выполняю в определенный момент:
while (queue.length) {
(queue.shift())();
}
Проблема в том, что некоторые из этих функций являются асинхронными, но мне нужно, чтобы они выполнялись одна за другой.
Таким образом, некоторые функции в очереди возвращают отложенные (например, через jQuery.ajax ()), а некоторые являются просто обычными функциями. Я хотел бы знать, как можно было бы выполнить их в порядке + последовательно (выполнение следующей функции только после завершения предыдущей).
Я подумал, что, возможно, jQuery.when будет тем, что я ищу, но я не могу понять, как именно это сделать, я придумал только это:
var deferred = jQuery.Deferred();
while (queue.length > 0) {
deferred.done().then(queue.shift());
}