角度承诺 - 在成功和错误上做点什么

Llo*_*nks 2 angularjs angular-promise

我有一个返回标准解决方案或拒绝承诺的服务.在我的控制器中,我目前有类似的东西:

myService.myServiceFunction(id).then(function(data){
    // do something with data
    $scope.myServiceFunctionFinished = true;
}, function(data){
    // do some error handling with data
    $scope.myServiceFunctionFinished = true;
});
Run Code Online (Sandbox Code Playgroud)

在上文中,错误和成功响应都将触发$scope.myServiceFunctionFinished分配true值.

反正是否有上述速记,所以我没有两次定义相同的东西?如果上面的代码是try catch语句,我正在寻找相当于finally块.我在上面显示的变量赋值必须在服务器响应后发生.

Pan*_*kar 6

你可以使用.finally一次调用promise的函数resolve/rejected.

myService.myServiceFunction(id).then(function(data){
    //do success code
}, function(data){
    //do error code    
}).finally(function(){
    //do some final stuff which wouldn't care about promise resolve/reject
    $scope.myServiceFunctionFinished = true;
});
Run Code Online (Sandbox Code Playgroud)