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