angularjs 处理多个异步请求方法汇总
在实际业务中经常需要等待几个请求完成后再进行下一步操作。但angularjs中$http不支持同步的请求。
解决方法一:
$http.get('url1').success(function(d1){
$http.get('url2').success(function(d2){
//处理逻辑
});
});
解决方法二:
then中的方法会按顺序执行。
varapp=angular.module('app',[]);
app.controller('promiseControl',function($scope,$q,$http){
functiongetJson(url){
vardeferred=$q.defer();
$http.get(url)
.success(function(d){
d=parseInt(d);
console.log(d);
deferred.resolve(d);
});
returndeferred.promise;
}
getJson('json1.txt').then(function(){ returngetJson('json2.txt'); }).then(function(){ returngetJson('json1.txt'); }).then(function(){ returngetJson('json2.txt'); }).then(function(d){ console.log('end'); }); });