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