jQuery.when - Retorno de chamada para quando TODOS os adiados não forem mais 'não resolvidos' (resolvidos ou rejeitados)?

Quando vários objetos adiados são passados para jQuery.when, o método retorna a promessa de um novo objeto adiado "mestre" que rastreia o estado agregado de todos os adiados pelos quais foi passad

O método será

resolva seu adiado principal assim que TODOS os adiados resolverem, ou rejeitar seu mestre adiado assim que UM dos adiados for rejeitad

Se o adiado principal for resolvido (por exemplo, TODOS os adiados resolvem), são passados os valores resolvidos de todos os adiados que foram passados para jQuery.when. Por exemplo, quando os adiados forem solicitações jQuery.ajax (), os argumentos serão os objetos jqXHR das solicitações, na ordem em que foram fornecidos na lista de argumentos:

$.when( $.getJSON('foo'), $.getJSON('bar') ).done(function(foo, bar) {

    // foo & bar are jqXHR objects for the requests

});

No caso de vários adiados, em que um dos adiados é rejeitado, jQuery.when IMEDIATAMENTE FIRES, os retornos de chamada com falha para seu adiado principal, mesmo que alguns dos adiados ainda possam ser resolvidos nesse ponto:

$.when( $.getJSON('foo'), $.getJSON('bar') ).fail(function(req) {

    // req is the jqXHR object for one of the failed requests

});

Preciso acionar um retorno de chamada quando todos os adiados passados para o jQuery.when não são mais 'não resolvidos' (ou seja, todos são 'resolvidos' ou 'rejeitados'). Eu poderia enviar objetos JSON com 200 códigos OK (em vez de enviar JSON com códigos de status de erro 404 Não encontrado) e determinar êxito / erro no método done (), mas eu preferiria manter minha API RESTful. Como posso fazer isso

questionAnswers(8)

yourAnswerToTheQuestion