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

解决方法一:

$http多层嵌套
$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.all方法第一个参数可以是数组(对象)。在第一参数中内容都执行完后就会执行then中方法。第一个参数的方法的所有返回值会以数组(对象)的形式传入。

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

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

    $q.all({first: $http.get('json1.txt'),second: $http.get('json2.txt')}).then(function(arr){  

        console.log(arr);  

        angular.forEach(arr,function(d){  

            console.log(d);  

            console.log(d.data);  

        })  

    });  

});  

最新文章

  1. XML中& <> 单引号' 双引号 " 报错
  2. opencv3.0+VS2015+64位win7配置
  3. Xamarin自学教程(Android)之一
  4. css 面试学习
  5. Python 基础【第九篇】运算
  6. SGU 103.Traffic Lights(最短路)
  7. Entity Framework With Mysql 之Code First
  8. SharePoint 无法删除搜索服务应用程序
  9. 微信小程序之给项目设置id后提示不在合法域名列别中
  10. LNMP环境下搭建wordpress
  11. firemonkey EDit 改变颜色
  12. 类的父类object的一些属性、方法
  13. PHP实用代码片段(一)
  14. Fourier Transform Complex Conjugate Discussion
  15. pip 安装第三方包提示Unknown or unsupported command 'install'
  16. [No0000F3]C# 结构(Struct)
  17. cent 7 安装VNC
  18. 服务器端数据合法性验证:签名sign和口令token原理
  19. pixi.js + three.js
  20. Machine Learning、Date Mining、IR&NLP 会议期刊论文推荐

热门文章

  1. pycharm打开多个项目并存
  2. python re正则表达式模块
  3. JeePlus:代码结构
  4. MogileFS的实现和bug解决
  5. 慕课网6-4 编程练习:jQuery选择器中的过滤器
  6. knockout jquery警告删除
  7. python re的使用
  8. curl 做爬虫 用服务器代理ip
  9. Beyond Compare 激活解决办法
  10. Vue知识点小总结1