2014-02-07 7 views
11

Ich versuche, Fehler mit meinen Ressourcen zu behandeln, und dann die Ablehnung von Ressourcen in meinem $q.all() behandeln.

Dies ist mein Code:

var user = User.get({id: 1}, function() { 
    // Success 
}, function(response) { 
    // Error 
    return $q.reject(response); 
}); 

var promiseList = [user]; 
$q.all(promiseList).then(function(){ 
    // Success <-- this seems to run all the time 
    }, function(response) { 
    // Error <-- this never seems to run but I want it to 
}); 

Wenn meine Benutzer Ressource erhält eine 404, der Fehler-Callback behandelt sie und gibt einen $q.reject.

jedoch der Erfolg Rückruf in meinem $q.all aufgerufen wird, nicht mein Fehler Rückruf. Ich hätte gedacht, weil ich mein Versprechen zurückweisen würde der $q.all Fehler Rückruf würde ausgelöst werden?

Ich weiß zu schätzen, ich habe nur 1 Artikel in meinem promiseList aber das sollte keinen Unterschied machen sollte es?

+4

Ich denke, dass Sie [Benutzer. $ Versprechen] benötigen, um das erwartete Ergebnis zu erhalten. – michael

+0

Welche Argumente erhält der Erfolgsrückruf? – Bergi

+0

Danke Michael, machte meinen Tag !!!!! – ppollono

Antwort

12

Laut Michael in den

Ich änderte

var promiseList = [user]; 

Um diese Kommentare:

var promiseList = [user.$promise]; 

Und nun die $q.reject() vom $q.all() abgeholt wird.

Super, danke für den Rat.

+0

Ich konnte nicht herausfinden, warum mein $ q.all() nicht richtig funktioniert. Nach Stunden der Suche fand ich schließlich das Problem mit der Promise.Promise-Eigenschaft! –

Verwandte Themen