使用 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"
}]