jQuery: executa uma matriz de funções sequencialmente (adiadas e não adiadas)
Eu sou bastante novo no uso do Promises e tenho dificuldade em entender minha experiência com os adiados do jQuery.
O que tenho atualmente é uma matriz de funções que executo em um determinado ponto:
while (queue.length) {
(queue.shift())();
}
O problema é que algumas dessas funções são assíncronas, mas eu preciso que elas sejam executadas uma após a outra.
Portanto, algumas das funções na fila retornam um adiado (por exemplo, via jQuery.ajax ()) e algumas são apenas funções normais. Gostaria de saber se seria possível executá-los em ordem + sequencialmente (executando a próxima função somente quando a anterior tiver terminado).
Eu pensei que talvez jQuery.when seria o que eu estou procurando, mas não consigo descobrir exatamente como, eu vim apenas com isso:
var deferred = jQuery.Deferred();
while (queue.length > 0) {
deferred.done().then(queue.shift());
}