У меня есть этот бит кода. Прямо сейчас функции addDep
и addCust
вызываются, но никогда не запускаются, что приводит к переменным undefined
. Как я могу это исправить? Я прочитал несколько постов о обратных вызовах, но я не совсем понимаю, как их применять.
Я понимаю, что происходит, я просто не знаю, как это исправить.
var addressArray = [];
$.ajax({
type: "GET",
async: true,
url: url,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(result){
var jsonObj = result;
var grainArray = jsonObj.grain_map;
for (i=0; i < grainArray.length; i++){
var destLength = grainArray[i].DESTINATION;
if (destLength == ""){
continue;
}
if (destLength.length < 6){
var destCode = grainArray[i].DESTINATION;
var address = addDep(destCode);
addressArray.push(address);
}else{
var destCode = grainArray[i].DESTINATION;
var address = addCust(destCode);
addressArray.push(address);
}
}
document.write(addressArray[20]);
},
failure: function(result) {
alert(result.d);
}
});
function addDep(destCode){
$.ajax({
url: 'http://localhost:8181/GRAIN/dep_address?depcode='+destCode+'&attributes=ADDRESS',
async: true,
dataType: 'json',
success: function (data) {
var address = "";
var depArray = data.dep_address[0].ADDRESS;
for(i = 0; i < depArray.length; i++){
address += data.dep_address[0].ADDRESS[i] + " ";
}
return address;
}
});
}
function addCust(destCode){
$.ajax({
url: 'http://localhost:8181/GRAIN/customer_address?cusid='+destCode+'&attributes=ADDRESS',
async: true,
dataType: 'json',
success: function (data) {
var address = "";
var depArray = data.dep_address[0].ADDRESS;
for(i = 0; i < depArray.length; i++){
address += data.dep_address[0].ADDRESS[i] + " ";
}
return address;
}
});
}