使用 q.all 來處理多個 promise

在成功解析了一組 promise 之後,你可以使用 $q.all 函式呼叫 .then 方法並獲取它們解析的資料。

例:

JS:

 $scope.data = []

 $q.all([
    $http.get("data.json"),
    $http.get("more-data.json"),
    ]).then(function(responses) {
      $scope.data = responses.map((resp) => resp.data);
    });

對於本地 json 檔案中的資料,上面的程式碼執行 $http.get 2 次,當 get 方法完成它們解析它們的相關承諾時,當陣列中的所有 promise 都被解析時,.then 方法以 responses 陣列引數內的兩個 promises 資料開始。

然後對映資料,以便它可以顯示在模板上,然後我們可以顯示

HTML:

<ul>
   <li ng-repeat="d in data">
      <ul>
         <li ng-repeat="item in d">{{item.name}}: {{item.occupation}}</li>
      </ul>
   </li>
</ul>

JSON:

[{
  "name": "alice",
  "occupation": "manager"
}, {
  "name": "bob",
  "occupation": "developer"
}]