为了账号安全,请及时绑定邮箱和手机立即绑定

AngularJS $ q.all

AngularJS $ q.all

慕码人8056858 2019-12-10 16:08:15
我已经在angularjs中实现了$ q.all,但是我无法使代码正常工作。这是我的代码:UploadService.uploadQuestion = function(questions){        var promises = [];        for(var i = 0 ; i < questions.length ; i++){            var deffered  = $q.defer();            var question  = questions[i];             $http({                url   : 'upload/question',                method: 'POST',                data  : question            }).            success(function(data){                deffered.resolve(data);            }).            error(function(error){                deffered.reject();            });            promises.push(deffered.promise);        }        return $q.all(promises);    }这是我的控制器,它调用服务:uploadService.uploadQuestion(questions).then(function(datas){   //the datas can not be retrieved although the server has responded    }, function(errors){    //errors can not be retrieved also})我认为在我的服务中设置$ q.all存在一些问题。
查看完整描述

2 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

问题似乎是您要添加deffered.promisewhen deffered本身就是您应该添加的承诺:


尝试更改为promises.push(deffered);,这样就不会将未包装的Promise添加到数组中。


 UploadService.uploadQuestion = function(questions){


            var promises = [];


            for(var i = 0 ; i < questions.length ; i++){


                var deffered  = $q.defer();

                var question  = questions[i]; 


                $http({


                    url   : 'upload/question',

                    method: 'POST',

                    data  : question

                }).

                success(function(data){

                    deffered.resolve(data);

                }).

                error(function(error){

                    deffered.reject();

                });


                promises.push(deffered);

            }


            return $q.all(promises);

        }



查看完整回答
反对 回复 2019-12-11
  • 2 回答
  • 0 关注
  • 366 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信