在我的$ onInit函数中,我有两个获取数据的函数。我使用第三个函数,我需要前两个数据。我在第三个函数中执行的逻辑是将在屏幕上呈现的内容。如何在$ onInit中使用回调并确保第三个函数在前两个函数之前没有运行?
var ctrl = this;
ctrl.company = {};
ctrl.company.administrators = [];
ctrl.administrators = [];
ctrl.$onInit = $onInit;
....
function $onInit() {
$q.all([getCompanies(), getAdministrators()]).then(findAdministrators);
getUnasignedAdministrators();
}
function getCompanies() {
companiesService.getCompanies()
.then(function (data) {
var company = data.items.find(function (company) {
if ($stateParams.id === company.id) {
return company;
}
});
ctrl.company.name = company.name;
ctrl.company.contactPerson = {
firstName: company.contactPersonName,
lastName: company.contactPersonLastName,
phone: company.contactPersonPhone
};
})
.catch(function (response) {
responseService.displayError(response);
});
}
function getAdministrators() {
administratorsService.getAdmins()
.then(function (data) {
ctrl.administrators = data.items;
})
.catch(function (response) {
responseService.displayError(response);
});
}
function findAdministrators() {
console.log("getCompanies", ctrl.company);
console.log("getAdministrators", ctrl.administrators);
}
编辑我的代码示例
SELECT i1.site_ID, i1.tank_product, i1.volume, i.timestramp, iu.User_ID
FROM Inventory AS i1
INNER JOIN (
SELECT u.ID AS UserID, i.tank_product, MAX (i.timestramp) AS time
FROM Inventory AS i2
INNER JOIN wp_users AS u
ON i2.site_id = u.ID
GROUP BY u.ID, i.tank_product
) as iu
ON i1.tank_product = iu.tank_product
AND i1.timestramp = iu.time
AND i1.site_ID = iu.UserID;
答案 0 :(得分:0)
您应该考虑从dataset2
& getFood
方法,并在完成这两个方法承诺时调用getDrinks
。通常,代码段如下所示。
combineFoodAndDrinks