angularjs - Angular Promise - 对成功和错误都做一些事情

标签 angularjs angular-promise

我有一项服务返回标准解决或拒绝 promise 。在我的 Controller 中,我目前有类似的内容:

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 block 的内容。我上面显示的变量赋值必须在服务器响应后发生。

最佳答案

您可以使用.finally函数,该函数将调用一次promiseresolve/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;
});

关于angularjs - Angular Promise - 对成功和错误都做一些事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34813815/

相关文章:

javascript - 如何在 AngularJS 中将参数传递给 Promise

javascript - 在 AngularJS 中使用带有 promise 的闭包

javascript - Angular 用户界面 Bootstrap : promise resolved/rejected when modal closed

javascript - 使用 controllerAs 的指令中的 angularjs Controller 无法工作?

angularjs - AngularJS 中装饰器函数的依赖注入(inject)

Javascript 正则表达式在选择正斜杠时中断

angularjs - 有 Angular 的 promise 和错误

javascript - 使用谷歌地图自动完成时,ng 模型仅在点击后更新输入

javascript - 如何在 Angular ng-Repeat 中动态设置 Zingchart 属性

angularjs - 与其他 Controller 的回调共享 Promise 中的数据