angularjs – 如何在Angular.js中实现promise时总是运行一些代码
发布时间:2020-12-17 09:07:45 所属栏目:安全 来源:网络整理
导读:在我的Angular.js应用程序中,我运行一些异步操作。在开始之前,我用一个模态div覆盖应用程序,然后一旦操作完成,我需要删除div,无论操作是否成功。 目前我有这个: LoadingOverlay.start(); Auth.initialize().then(function() { LoadingOverlay.stop();}
在我的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(); }) 我认为这是一个相当普遍的问题,所以我认为可以做,但在文档中找不到任何东西。任何想法如果可以做到?
该功能已在
this pull request中实现,现在是AngularJS的一部分。它最初被称为“always”,然后重命名为finally,因此代码应如下所示:
LoadingOverlay.start(); Auth.initialize().then(function() { // Success handler },function() { // Error handler }).finally(function() { // Always execute this on both error and success }); 请注意,由于finally是一个保留的关键字,可能有必要使其成为一个字符串,以便它不会在某些浏览器(如IE和Android浏览器)中断: $http.get('/foo')['finally'](doSomething); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |