AJAX嵌套获取数据的IDEA
发布时间:2020-12-16 01:33:03 所属栏目:百科 来源:网络整理
导读:需求 假设有一个医院病人列表,每个病人有一个体检数据列表,每个体检数据表中都有相应的体检数据。现在需要我们在病人列表中显示体检列表里第一条的体检数据中的警报级别。 这么说有点乱, AList - BList - CTable-获取CTable中的warnData-显示到AList的每
需求假设有一个医院病人列表,每个病人有一个体检数据列表,每个体检数据表中都有相应的体检数据。现在需要我们在病人列表中显示体检列表里第一条的体检数据中的警报级别。 分析遇到了这个问题我第一时间感觉像是后端来处理的,但是没办法后端不处理我只好自己来一步步进去拿咯。这里遇到的问题是:由于AJAX是异步的,使用for循环来搞经常会拿不到数据或者出错。所以我用了以下代码。 代码逻辑MonitorEstimateList = []
index = 0
PatientListData = null
function loadInt() {
//获取所有病人信息
$.ajax("api",{
type: 'get',contentType: 'application/json',dataType: "json",success: function (result,status,xhr) {
var json = eval('(' + result + ')');
PatientListData = json;
loadEatimateList();
},error: function (XMLHttpRequest,textStatus,errorThrown) {
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
},})
}
function loadEatimateList() {
var message = eval('(' + PatientListData.Message + ')');
$.ajax(kfsys.baseUrl + "api?HospitalizedHisID=" + message[index].HospitalizedHisID,xhr) {
var resultObj = eval('(' + result + ')'); //从webApi获取json字符串转换成JSON对象
if (resultObj.length > 0) {
if (resultObj[0].AdmissionID != null) {
var url = kfsys.baseUrl + "api";
$.ajax(url,{
type: "get",data: {AdmissionID: resultObj[0].AdmissionID},xhr) {
var json = eval('(' + result + ')'); //从webApi获取json字符串转换成JSON对象
MonitorEstimateList.push(json.warnData);
index++;
if (index + 1 > message.length) {
//TODO 输出结果
} else {
loadEatimateList();
}
},errorThrown) {
MonitorEstimateList.push(0)
index++;
if (index + 1 > message.length) {
//TODO 输出结果
} else {
loadEatimateList();
}
}
})
} else {
MonitorEstimateList.push(0);
index++;
if (index + 1 > message.length) {
//TODO 输出结果
} else {
loadEatimateList();
}
}
} else {
MonitorEstimateList.push(0);
index++;
if (index + 1 > message.length) {
//TODO 输出结果
} else {
loadEatimateList();
}
}
},errorThrown) {
MonitorEstimateList.push(0);
index++;
}
})
}
实现步骤
总结虽然这个方法是可行的,但是我总是觉得并不是一个最佳解决方案。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |