Javascript 处理从$q.all返回的结果

Javascript 处理从$q.all返回的结果,javascript,angularjs,Javascript,Angularjs,对于$q.all返回的结果应该如何处理,我有些困惑 这是我的密码 var pageLoad = function () { var pageLoadPromises = [ youEmployerData.getEmployerPrograms($scope.employerId), youEmployerData.getWorksites($scope.employerId) ]; $q.

对于$q.all返回的结果应该如何处理,我有些困惑

这是我的密码

  var pageLoad = function () {

        var pageLoadPromises = [
            youEmployerData.getEmployerPrograms($scope.employerId),
            youEmployerData.getWorksites($scope.employerId) 
        ];

        $q.all(pageLoadPromises)
        .then(function (results) {

            $scope.programs = results[0];
            $scope.worksites = results[1];
            $scope.appLoaded = true;

        }, function (r) {

            handleResourceError(r);

        });

    };
以下是我实际的资源调用

you.factory('youEmployerData', function ($resource) {

    return {

        getEmployerPrograms: function(employerId) {
             return $resource("/api/programs/getemployerprograms?employerId=:id").query({ id: employerId });
         },

        getWorksites: function (employerId) {
             return $resource("/api/employer/getworksites?employerId=:id").query({ id: employerId });
         }
      }
   }
我已经验证了我的资源调用是否正常工作,我只知道我在
然后(函数(结果){
中做了一些错误的事情-我只是不太确定如何处理这些数据

另外-
$scope.worksites
应该是返回的工作站点数组,
$scope.programs
应该是程序数组

如果您有任何问题或需要进一步澄清,请告诉我

这是控制台.log(results)的屏幕截图,它看起来是正确的,结果[0]只有1项和结果($scope.worksite)-有多个项目,唯一的问题是有些东西不工作,因为$scope.worksites没有在屏幕上正确输出,就像数组不正确或其他什么。抱歉-难以描述


可能是因为您忽略了$resource对象不是承诺的事实?您可以尝试以下方法:

    var pageLoadPromises = [
        youEmployerData.getEmployerPrograms($scope.employerId).$promise,
        youEmployerData.getWorksites($scope.employerId).$promise 
    ];

当您使用console.log结果时,您会看到什么?谢谢-这修复了它:)