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(),多个请求怎么处理?
    }
    
})

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

阅读 1.9k
1 个回答

简单:

    $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) {
            
        });
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题