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'); }); });