W mojej aplikacji Angular.js wykonuję operację asynchroniczną. Zanim się zacznie, zakrywam aplikację modalnym divem, a po zakończeniu operacji muszę usunąć div, niezależnie od tego, czy operacja się powiodła, czy nie.
Obecnie mam to:
LoadingOverlay.start();
Auth.initialize().then(function() {
LoadingOverlay.stop();
}, function() {
LoadingOverlay.stop(); // Code needs to be duplicated here
})
Działa dobrze, ale wolałbym mieć coś czystszego, takiego jak ten pseudokod:
LoadingOverlay.start();
Auth.initialize().finally(function() { // *pseudo-code* - some function that is always executed on both failure and success.
LoadingOverlay.stop();
})
Zakładam, że to dość powszechny problem, więc myślałem, że można to zrobić, ale nie mogę znaleźć niczego w dokumencie. Masz jakiś pomysł, czy można to zrobić?
then()
, a następnie można z pewnością przykuje inny ....initialize().then(...).then(...)
. Nie ma „wreszcie” jako takiego; ostatni program obsługi to ostatni określony.