javascript - angularjs异步查询问题

查看:85
本文介绍了javascript - angularjs异步查询问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

    var hour = [
        "00:00",
        "01:00",
        "02.00"
    ]
    $scope.data = [];
    $scope.search = function(){
        angular.forEach(hour,function(item){
        $http.get('url'+item)
            .success(function(res){
                $scope.data.push(res);
            })
        //我想在这里改变$scope.data的内容,一个请求时用$q.defer(),多个请求怎么处理?
    }
    
})

就是我希望再三次请求数据都拿到,然后再执行另一个方法,该怎样实现?

解决方案

简单:

    $scope.search = function(){
        var promises = [];
        angular.forEach(hour,function(item){
            var deffered  = $q.defer();
            $http.get('url'+item)
                .success(function(res){
                    $scope.data.push(res);
                    deffered.resolve();
                })
                .error(function() {
                    deffered.reject();
                });
                
            promises.push(deffered.promise);
        })
        $q.all(promises).then(function() {
            //我想在这里改变$scope.data的内容,一个请求时用$q.defer(),多个请求怎么处理?
        }, function(err) {
            
        });
    }

这篇关于javascript - angularjs异步查询问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆