回调ajax数组的回调不起作用?

时间:2012-11-19 22:21:10

标签: jquery-ui jquery

回调始终为空

// calling the function
var returnArray = getArrayData(fileName, function(data) {
    return data;
})
alert(returnArray); // output says undefined

function getArrayData(fileName, callback) {
    var arrayData = [];
    $.getJSON("sendRequestFile", {
        fileContent: fileName
    }, function(data) {
        $.each(data, function(index, value) {
            if (value === "false") {} else if (value === "") {} else {
                arrayData[index] = value;
            }
        });
        alert(arrayData); // see data without no problems
    });
    alert(arrayData); // empty
    callback(arrayData); // undefined
}​

1 个答案:

答案 0 :(得分:3)

Ajax是异步的,在完整的回调中运行回调。

$.getJSON("sendRequestFile", {
    fileContent: fileName
}, function(data) {
    $.each(data, function(index, value) {
        if (value === "false") {} else if (value === "") {} else {
            arrayData[index] = value;
        }
    });
    callback(arrayData); // worky
});
//alert(arrayData); // empty
//callback(arrayData); // undefined​