Angular Promises - 对成功和错误都做一些事情
Angular Promises - Do Something on Both Success and Error
我有一项服务 returns 标准解决或拒绝承诺。在我的控制器中,我目前有类似的东西:
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
值。
上面的 shorthand 是不是我没有定义相同的东西两次?如果上面的代码是 try catch 语句,我正在寻找 finally 块的等价物。我上面显示的变量赋值必须发生在服务器响应之后。
您可以使用 .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;
});
我有一项服务 returns 标准解决或拒绝承诺。在我的控制器中,我目前有类似的东西:
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
值。
上面的 shorthand 是不是我没有定义相同的东西两次?如果上面的代码是 try catch 语句,我正在寻找 finally 块的等价物。我上面显示的变量赋值必须发生在服务器响应之后。
您可以使用 .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;
});