我正在尝试从多个源加载数据,并希望仅在加载所有数据后继续处理。这是我的代码:
var tables = [];
$http
.get('/tables')
.then(function (response) {
_.each(response.data, function (table) {
tables.push(table);
});
})
// get detail data
.then(function () {
_.each(tables, function (table) {
$http.get('/tables/' + table)
.success(function (data) {
process(data);
});
});
})
.then(function () {
// after everything loaded
// run this function
});
感谢您的帮助!
答案 0 :(得分:0)
您应该使用以下内容:
.then(function () {
return $q.all(_.map(tables, function (table) {
return $http.get('/tables/' + table)
.success(process);
});
})
与问题的主要部分无关,但请注意,如果您要将参数传递给.success
,则无需为process()
定义全新的匿名函数。