【发布时间】:2018-01-18 21:19:18
【问题描述】:
我在一个页面上有两个 HTTP 调用,它们完全是分开的。
vm.$onInit = function() {
....
....
//Get all the items only once during initialization
ds.getAllItems().then(function(result){
vm.items = result;
},function(error){
vm.errorInApi = true;
});
.....
.....
}
vm.getTimes = function(){
.....
.....
HttpWrapper.send(url,{"operation":'GET'}).then(function(times){
.....
}
如果两个 API 都失败了,那么我只需要显示一个模式。
我可以将变量初始化为 true,并且在 API 失败时,我可以将其设为 false,然后仅显示模式。
但是要等多久才能完成所有 API?
【问题讨论】:
-
通话是否同时进行?
-
如果两者同时运行,你可以在 $q.all() 中换行
-
@guest271314 不首先调用 OnInit,然后在单击某些按钮时调用 getTimes。
-
如果两个promise都失败了,你可以处理一个变量标志并用$watch监听。
-
@JesusCarrasco 我认为
$q.all将不起作用,因为一旦其中一个承诺被拒绝,就会调用拒绝回调并出现错误。
标签: javascript angularjs http promise