在我的 $onInit 函数中,我有两个获取数据的函数。我在需要前两个数据的地方使用第三个函数。我在第三个函数中执行的逻辑是将在屏幕上呈现的内容。如何在 $onInit 中使用回调并确保第三个函数没有在前两个函数之前运行?
ctrl.$onInit = $onInit;
function $onInit() {
getFood();
getDrinks();
combineFoodAndDrinks();
}
编辑我的代码示例
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);
}