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 –