如何在angularjs中等待多个请求完成
How to wait for multiple request to complete in angularjs
在继续web应用程序之前,我希望完全加载多个方法。为此,我做了以下-
function getData(){
var defer = $q.defer();
$http.get("/echo/json/").success(function(data, status) {
getData2();
getData3();
$timeout(function(){
defer.resolve(data);
}, 1000);
});
return defer.promise;
}
在这里,getData2()和getData3()也将执行ajax调用。所以我必须等待这些方法完成那里的调用,然后我必须返回主方法的promise。
这很有效,但给我带来了性能问题。我还有别的办法吗?
如果订单不重要,请使用$q.all()如下:
$q.all([getData1(), getData2(), getData3()])
.then(function(result){
// result[0] is output of getData1()
// result[1] is output of getData2()
// result[2] is output of getData3()
});
但如果订单很重要,请按如下方式在链中调用它们:
getData1()
.then(function(result1){
return getData2();
})
.then(function(result2){
return getData3();
})
.then(function(result3){
// your other codes
});
假设所有getDataX
函数都返回promise,则应该将它们按如下方式链接:
getData()
.then(function(result){
return getData1();
})
.then(function(result1){
return getData2();
})...
相关文章:
- 在等待ajax请求时显示微调器并禁用页面
- Javascript在for循环中等待处理请求
- 如何使请求等待上一个请求完成
- 如何解决等待多个请求以javascript发送响应的问题
- 如何等待异步请求完成
- 节点.js等待请求完成
- 等待发出 AngularJS HTTP 请求
- 如何等待 ajax 请求
- 让代码等待,直到 AJAX 请求完成
- 如何在 UI5 中等待 JSONModel.loadData() 请求
- 等待请求完成并返回数据
- 力量角器's on准备等待异步http请求
- 等待React Render,直到请求之后
- AngularJs控制器没有't等待$http请求
- 等待中的两个ajax请求成功函数的执行
- 等待等效请求挂起
- javascript restler如何阻止/等待请求
- AngularJS没有等待HTTP请求完成
- 如何在angularjs中等待多个请求完成
- 如何强制一个AJAX请求等待另一个请求完成