我有一个返回标准解决方案或拒绝承诺的服务。在我的控制器中,我目前有类似的东西:
myService.myServiceFunction(id).then(function(data){
// do something with data
$scope.myServiceFunctionFinished = true;
}, function(data){
// do some error handling with data
$scope.myServiceFunctionFinished = true;
});
在上文中,错误和成功响应都会触发$scope.myServiceFunctionFinished
分配true
值。
反正是否有上述速记,所以我没有两次定义相同的东西?如果上面的代码是 try catch 语句,我正在寻找等效的 finally 块。我在上面显示的变量赋值必须在服务器响应后发生。
答案 0 :(得分:5)
您可以使用.finally
函数,该函数将调用一次承诺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;
});