У моєму додатку Angular.js я виконую деяку асинхронну операцію. Перш ніж він почнеться, я покриваю програму модальним div, а після завершення операції мені потрібно видалити div, незалежно від того, була операція успішною чи ні.
На даний момент я маю це:
LoadingOverlay.start();
Auth.initialize().then(function() {
LoadingOverlay.stop();
}, function() {
LoadingOverlay.stop(); // Code needs to be duplicated here
})
Це працює добре, однак я би віддав перевагу щось чистіше, як цей псевдокод:
LoadingOverlay.start();
Auth.initialize().finally(function() { // *pseudo-code* - some function that is always executed on both failure and success.
LoadingOverlay.stop();
})
Я припускаю, що це досить поширена проблема, тому я думав, що це можна зробити, але не можу знайти нічого в документі. Будь-яка ідея, чи можна це зробити?
then()
, то ви можете , звичайно , ланцюг іншого ....initialize().then(...).then(...)
. Немає "остаточно" як такого; кінцевий обробник - це останній вказаний.