2015-05-19 121 views
0

我調用一個函數,返回一個ID,我想在鏈接調用中使用的列表。一切似乎工作,直到我想閱讀所有返回的對象..這些承諾,但我無法找出爲什麼我不能解決它們。

 //Get bubbles and then it calls another function getBubbleMessage with result from previous and last getBubbleMessage returns an array of promises. 

    $scope.loadStartPage = function() { 

     $scope.getBubblesThatUserHasAccessTo().then($scope.getBubbleMessage).then(function (data) { 
      $log.info("INFO:: " + data); 
      $scope.bubblesWithMessages = data; 


     }); 
    }; 

    $scope.getBubblesThatUserHasAccessTo = function() { 
     var deferred = $q.defer(); 

     BubblesService.getBubblesUserAccess().then(function (result) { 
      deferred.resolve(result); 

     }); 

     return deferred.promise; 
    }; 

此功能gettings一些事情,我們需要解決連接到這些ID消息:■上述服務將返回

$scope.getBubblesThatUserHasAccessTo = function() { 
     var deferred = $q.defer(); 

     BubblesService.getBubblesUserAccess().then(function (result) { 
      deferred.resolve(result); 

     }); 

     return deferred.promise; 
    }; 

此功能讓承滴盤的消息,並返回承諾對象 - 這些我無法解決?

$scope.getBubbleMessage = function (data) { 

     var deferred = $q.defer(); 
     var promises = []; 

     angular.forEach(data, function (item) { 
      $log.info("DDD" + item.name); 
      var promise = BubblesService.getBubbleMessages(item.id, 0, 1); 
      promises.push(promise); 
     }); 

     //return $q.all([promises]); 
     $q.all([promises]).then(function (result) { 
      $log.info(result); 
      return result[0]; 

     }); 

    }; 

以上函數返回60個對象的數組.. enter image description here

在我想有我在NG-重複使用頁面上的新對象到底。我真的認爲這是一個即時新的角度和承諾todo ...但經過幾個小時的努力修復這個我真的需要幫助:)

+0

它應該是'return $ q.all([promises]);'。 – dfsq

回答

4

$ q.all需要一個承諾的數組。在這裏,你正在做$ q.all([myPromises]),它立即解決,因爲'[myPromise]'是一個數組而不是一個承諾(你給一個數組參數,第一個和唯一的元素是一個承諾的數組,當你應該簡單地使用promise數組。So []和not [[]])。第二個問題:你沒有在父功能中返回這個承諾。

您應該簡單地改變塊

$q.all([promises]).then(function (result) { 
      $log.info(result); 
      return result[0]; 

     }); 

return $q.all(promises); 

將與分辨的陣列中的每個承諾陣列解決。

+0

我試過了,它似乎工作,但 - 我不明白如何訪問那些對象之後。在我的方法。我怎樣才能看到它們是如何構成的? $ scope.bubblesWithMessages = data; ?? 有沒有辦法查看數據的外觀? – MrWeiland

+0

只需$ scope.bubblesWithMessages = data;是的,數據是一個消息數組 –

+0

console.log(數據)? {{bubblesWithMessages | json}}?你究竟是什麼意思? –