Как использовать обратные вызовы в этом AJAX - PullRequest
0 голосов
/ 22 октября 2019

У меня есть этот бит кода. Прямо сейчас функции 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;
        }
      });
}
...