$ .Deferred: Como detectar quando cada promessa foi executada

Eu tenho um número de tarefas assíncronas que precisam ser concluídas, então estou usando promessas.

Preciso detectar quando cada uma das promessas foi executada (ambas resolvidas e rejeitadas). Eu não devo continuar a execução até esse ponto.

Eu estava usando algo assim:

$.when(promise1, promise2, ...).always();

Mas esse código está errado, porque owhen o método tem avaliação lenta e retorna assim que uma das promessas falha. Então oalways O retorno de chamada também é executado assim que uma das promessas falha.

Eu estava pensando em codificar uma solução alternativa, mas esse caso de uso é tão comum que talvez alguém já tenha feito isso, ou talvez haja uma maneira de fazer isso usando apenas o jQuery (se não, seria bom adicionar umPromise.whenNonLazy ou umPromise.when(promise1, promise2, ..., false) no futuro.

Isso é possível?

questionAnswers(3)

yourAnswerToTheQuestion