拒绝.然后angularJS承诺链
Rejection in .then angularJS promise chain
因此,根据文档(和实践经验;)AngularJS的$q
"then"方法返回新的promise(https://docs.angularjs.org/api/ng/service/$q"承诺API"部分)。
考虑这样一段代码:
// method somewhere in MyService service
// ...
loadItem = function() {
return OtherService.load().then(function(item) {
item.preprocessed = true;
return item;
});
}
// end of loadItem method
// Somewhere along the controller:
MyService.loadItem().then(function(item) {
// do something with an item...
alert(item.preprocessed);
}, function(error) {
alert('Error!');
})
现在,我想对promise返回值进行一些处理,但同时我希望通过promise链推送拒绝,而不必在每一步都手动拒绝promise。在上面的示例中,如果项加载正常,则预处理的属性设置为true,并激发控制器then()
方法上的正确处理程序,但当出现问题并且OtherService.load()的结果被拒绝时,控制器代码中的拒绝处理程序将不会被激发。
有没有办法克服这一点,也许有一种语法可以让拒绝通过?
由于您在错误回调do 中返回作为then
调用的一部分返回的promise
return OtherService.load().then(function(item) {
item.preprocessed = true;
return item;
},
function(error) {
return $q.reject(error);
});
并且错误回调将在控制器上触发。
相关文章:
- AngularJS$q承诺使用socket.io
- addEventListener 和 angularjs 承诺:把它包起来
- AngularJS因果报应测试规范承诺未解析,且未调用.then()
- AngularJS-我怎么知道何时解决了对父控制器的承诺
- $q.reject和处理AngularJS链接承诺中的错误
- 用angularjs在前臂做出承诺
- Throttle在AngularJS中的承诺
- AngularJS:根据值解析承诺对象
- 访问 angularjs 工厂数据之外的承诺
- AngularJS用承诺填充dropdwon
- 测试嵌套AngularJS与Jasmine的承诺
- AngularJS决心承诺.如果承诺被拒绝,则重定向
- 返回.然后承诺-AngularJS
- Angularjs承诺,不会及时通知绑定的更新进度
- 用Angularjs返回两个承诺,How To Chain So UI有$scope
- AngularJS中承诺的顺序和时间
- Wordpress主题angularJS承诺
- 如何使用AngularJs工厂履行承诺
- 在解决承诺 AngularJS/ES6 后检索存储在服务中的数据
- 如何在视图和手表上处理承诺——AngularJs 1.4