В моем приложении 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(...)
. Нет никакого «наконец» как такового; последний обработчик указан последним.