我正在尝试从后端服务器获取用户详细信息,我正在获取详细信息但不按顺序,详细信息正在相互混合。 我的控制器代码在这里
function addRecentDetailsToDestination(array) {
for (var i = 0; i < array.length; i++) {
var value = array[i];
userService.RetrieveRecentEduDetail(value.destinationId, function (rResponse) {
if (rResponse.success) {
value.destRecentEducationAvailable = true;
value.destRecentEducationName = rResponse.data.educationName;
userService.RetrieveCollege(rResponse.data.colCode, function (cResponse) {
if (cResponse.success) {
value.destRecentCollegeName = cResponse.data.colName;
} else {
}
});
} else {
value.destRecentEducationAvailable = false;
}
alert(console.log(value.destRecentEducationName));
});
userService.RetrieveRecentProfessionDetail(value.destinationId, function (response) {
if (response.success) {
value.destRecentProfessionAvailable = true;
value.destRecentProfessionRole = response.data.professionRole;
value.destRecentProfessionCompany = response.data.professionCompany;
} else {
value.destRecentProfessionAvailable = false;
}
});
});
}
}
此代码工作正常,但没有得到正确的结果,请帮助我 我正在调用这个函数
userService.RetrieveUserConnectionsBySourceId(userId, function (response) {
if (response.success) {
$scope.userConnectionsBySource = response.data;
addRecentDetailsToDestination($scope.userConnectionsBySource);
} else {
FlashService.Error(response.message);
}
});
答案 0 :(得分:0)
要使用AngularJS更改JavaScript中的异步执行的默认行为,您需要使用$q
promises。这将使您可以控制调用服务方法,并根据promises ($q)
的结果控制执行行为。