1
我有一個頁面上的按鈕,調用控制器內的過程函數,但在我發佈細節之前,我需要獲取 用戶詳細信息和userGroup詳細信息,並最終發佈用戶詳細信息。AngularJs如何確保代碼同步執行
但是,當我調試這個我可以看到我的populateUserGroups函數被調用,但沒有得到詳細信息的updateUser函數被調用,因此發佈的數據沒有userGroup數據。
看來populateUserGroups功能異步調用,我怎麼能確保當用戶點擊Process按鈕,第一的getData被調用,然後 populateUserGroups被稱爲和$ scope.user.userGroups填充用返回的數據最後updateUser被調用?
$scope.process = function() {
myservice.getData($scope.userId).success(function (data) {
$scope.user = data.value;
$scope.user.userGroups = {};
$scope.populateUserGroups();
$scope.updateUser();
});
};
$scope.populateUserGroups = function() {
myservice.getUserGroups($scope.userId).success(function (groupData) {
$scope.user.userGroups = groupData;
});
};
$scope.updateUser = function() {
myservice.updateUser($scope.user).success(function() {
// do stuff
});
};
調用第一功能的回調的第二個功能? – JJJ
使用承諾理想地返回承諾的服務。請參閱$ q – Sam
使用異步,https://www.npmjs.com/package/async –