angular.js处理多个异步请求方法

在实际业务中,经常会遇到需要等待几个请求完成后再进行下一步的操作。但是angularjs中不支持同步的请求。

解决方案一:

$http.get('url1').success(function(d1){

         $http.get('url2').success(function(d2){

                         //处理逻辑

          });

});

解决方案二:

then中的方法会按照顺序来执行

var app = angular.module('app',[]);

app.controller('promiseControl',function($scope,$q,$http) {

         function getJson(url){

                var deferred = $q.defer();

                $http.get(url)

                     .success(function(d){

                                d = parseInt(d);

                                console.log(d);

                               deferred.resolve(d);

});

            return deferred.promise;

}

getJson('json1.txt').then(function(){

               return getJson('json2.txt');

}).then(function(){

             return getJson('json1.txt');

}).then(function(){

               return getJson('json2.txt');

}).then(function(d){

               console.log('end');

});

});

解决方案三:

$q

刚接触,不太理解

















app.controller('promiseControl',function($scope,$q,$http) {

function getJson(url){

var deferred = $q.defer();

$http.get(url)

.success(function(d){

d = parseInt(d);

console.log(d);

deferred.resolve(d);

});

return deferred.promise;

}

getJson('json1.txt').then(function(){

return getJson('json2.txt');

}).then(function(){

return getJson('json1.txt');

}).then(function(){

return getJson('json2.txt');

}).then(function(d){

console.log('end');

});

});

你可能感兴趣的:(angular.js处理多个异步请求方法)