在单击事件之前完全处理http get请求
Process http get request completely before click event
我有以下javascript代码:-
$scope.fav_bill_details=function (id1,id2,bill_id) {
document.getElementById(id2).style.display="none";
$scope.getActiveBill();
document.getElementById(id1).style.display="block";
$scope.getBillDetails(bill_id);
$timeout(function(){
var btn=angular.element(document.getElementById(bill_id));
angular.element(document.getElementById(btn.id)).trigger('click');
});
};
从上面可以看到,上面有两个函数调用:- $scope.getActiveBill();
和$scope.getBillDetails(bill_id);
,这两个函数都有http get请求。它们获取数据并对其进行处理,并将其存储在$scope变量中。我想要的是这些请求在我触发点击事件之前完成,如上所述。我在两个函数中都实现了承诺。但是,点击甚至先完成,然后http请求才完成。我怎样才能达到上述要求??
你需要使用承诺,像这样:
$scope.fav_bill_details=function (id1,id2,bill_id) {
document.getElementById(id2).style.display="none";
$scope.getActiveBill().then(function() {
document.getElementById(id1).style.display="block";
return $scope.getBillDetails(bill_id);
}).then(function () {
var btn=angular.element(document.getElementById(bill_id));
angular.element(document.getElementById(btn.id)).trigger('click');
});
在您的示例中,您调用异步函数,但不等待它们完成,这解决了问题。
相关文章:
- AngularJS使用http进行promise处理
- 如何处理HTTP 204”;无内容”;在Restangular POST中
- 处理$http AngularJS返回数据
- 处理 HTTP 请求失败
- 在猫鼬查询返回集合之前,应用程序应该如何处理 http get 响应
- Node.js处理http请求的响应
- 处理http服务器崩溃
- 当请求失败时,Jquery不处理HTTP错误
- 如何处理$http.get中的多个错误
- extjs全局处理http响应
- Angular:未处理http错误的默认处理程序
- AngularJS中的错误处理:http get然后construct
- 在单击事件之前完全处理http get请求
- 如何在获取 API 中处理 HTTP 代码 4xx 响应
- 让多个Angular模态处理http响应数据
- 是否有一种方法为chrome打包应用程序处理Http BasicAuthentication
- 如何使用AngularJS处理$http同步请求
- 当离开状态时,如何停止http请求或停止处理http请求结果
- 用javascript处理HTTP XML流
- 在Cordova / Ionic iOS应用中使用WWW-Authenticate处理HTTP 401