我正在尝试从后端服务器获取用户详细信息,我正在获取详细信息,但没有按顺序,详细信息相互混淆。我的控制器代码在这里
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);
}
});发布于 2016-12-15 02:18:53
要更改带有AngularJS的JavaScript中异步执行的默认行为,您需要使用$q promises。这将使您能够控制调用服务方法,并且根据promises ($q)的结果,您可以控制执行行为。
https://stackoverflow.com/questions/41149295
复制相似问题