2017-01-09 3 views
2

Wenn ich ein Versprechen mit .Finally() handle, dann bekomme ich diese "möglicherweise unbehandelt Ablehnung" -Fehler, so anstelle von .Finally muss ich redundante verwenden. then() und .catch() mit demselben Code innerhalb. Ist das ein Fehler oder gibt es einen richtigen Weg, diese Ablehnung zu behandeln?Angular 1.6.1 "möglicherweise nicht behandelt Ablehnung" bei der Verwendung .finally()

const deferred = $q.defer(); 
deferred.promise.finally(() => {}); 
deferred.reject(); 

Hier ist der fiddle.

+0

Bitte schauen Sie in https://StackOverflow.com/questions/41063947/angular-1-6-0-possibly-unhandled-rejection-error –

+0

http://Stackoverflow.com/questions/41281515/possibly-unhandled- Ablehnung-in-Winkel-1-6 –

+0

https://github.com/angular/angular.js/blob/v1.6.1/CHANGELOG.md –

Antwort

3

Die finally für Versprechen hat das gleiche Verhalten/Absicht wie die finally in versuchen Blöcke.

Wenn Sie schreiben:

try { 
    throw new Error('test') // do some stuff 
} finally { 
    console.log('finally') 
} 

Dann wird der console.log('finally') ausgeführt wird, aber nach, dass der Code stoppt mit ein:

Uncaught Error: test

Das gleiche mit dem Versprechen, können Sie finally verwenden ausführen Code unabhängig davon, ob das Versprechen erfüllt oder abgelehnt wird, aber Sie müssen immer noch einen Rückruf catch verwenden, um die Ablehnung zu behandeln.

Verwandte Themen