angularjs 处理多个异步请求方法汇总

 更新时间:2015年01月06日 08:59:51   投稿:hebedich  
这篇文章主要介绍了angularjs 处理多个异步请求方法汇总,需要的朋友可以参考下

在实际业务中经常需要等待几个请求完成后再进行下一步操作。但angularjs中$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);
        })
    });
});

$q的详细使用方法网上的有很多教程。我也是刚接触。讲不好,不敢乱讲。上面的代码是我按我的理解写的,经过了测试没有问题。

相关文章

  • AngularJS实现星星等级评分功能

    AngularJS实现星星等级评分功能

    这篇文章主要为大家详细介绍了AngularJS实现星星等级评分功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • AngularJS入门之动画

    AngularJS入门之动画

    AngularJS中ngAnimate模块支持动画效果,但是ngAnimate模块并未包含在AngularJS核心库中,因此需要使用ngAnimate需要在定义Module时声明对其的引用。下面通过本文我们来看看AngularJS动画的详细介绍。
    2016-07-07
  • AngularJS验证信息框架的封装插件用法【w5cValidator扩展插件】

    AngularJS验证信息框架的封装插件用法【w5cValidator扩展插件】

    这篇文章主要介绍了AngularJS验证信息框架的封装插件用法,分析了AngularJS表单验证规则并实例说明了w5cValidator扩展插件的相关使用技巧,需要的朋友可以参考下
    2016-11-11
  • 模板视图和AngularJS之间冲突的解决方法

    模板视图和AngularJS之间冲突的解决方法

    这篇文章主要介绍了模板视图和AngularJS之间冲突的解决方法,结合实例形式分析了AngularJS模板视图冲突的原因并给出了2种解决方法供大家参考使用,需要的朋友可以参考下
    2016-11-11
  • Angular如何引入第三方库的方法详解

    Angular如何引入第三方库的方法详解

    本篇文章主要介绍了Angular如何引入第三方库的方法详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • 基于angular实现树形二级表格

    基于angular实现树形二级表格

    这篇文章主要介绍了angular手写树形二级表格的完整代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • AngularJS基础 ng-model-options 指令简单示例

    AngularJS基础 ng-model-options 指令简单示例

    本文主要介绍AngularJS ng-model-options 指令,这里对ng-model-options指令的基本资料进行整理,有需要的小伙伴可以参考下
    2016-08-08
  • 在Angular测试中使用spy的教程详解

    在Angular测试中使用spy的教程详解

    spy 是一种检查函数是否被调用或提供自定义返回值的方法,我们可以使用spy 来测试依赖于服务的组件,并避免实际调用服务的方法来获取值,在本文中,您将学习如何在 Angular 项目中使用 Jasmine spy,需要的朋友可以参考下
    2024-03-03
  • AngularJS基于ui-route实现深层路由的方法【路由嵌套】

    AngularJS基于ui-route实现深层路由的方法【路由嵌套】

    这篇文章主要介绍了AngularJS基于ui-route实现深层路由的方法,涉及AngularJS路由嵌套操作相关实现步骤与技巧,需要的朋友可以参考下
    2016-12-12
  • AngularJS入门教程之更多模板详解

    AngularJS入门教程之更多模板详解

    本文主要介绍AngularJS模板的资料知识,这里帮大家整理了详细的模版资料,及实现示例代码,帮助大家学习AngularJS的知识,有需要的小伙伴可以参考下
    2016-08-08

最新评论