如何在回调函数之外继续执行代码?

时间:2013-01-17 15:13:59

标签: jquery

我希望我用正确的词来描述这个问题....在这里,我用一个属性和方法定义了一个名为TK的对象。

var TK = {
    List: [],
    getSectionA: function(listName) {
        var arrayList = [];
        TK.returnList = $.get(
            'ajax/test.html', 
            { sendName: listName }, 
            function(data) {
            }
        );       
    }
};

调用函数

$("#dropDownList").change(function() {
    TK.getSectionA(fileName);

//这里我试图摆脱下面的回调函数并在将回调返回数据(resultLists)分配给变量(TK.List)之后继续正常的代码执行,但是当我警告数组变量TK.List没有显示任何内容。

TK.List = TK.returnList.done(function(data) {
    var resultLists = [];
    $.each(data, function(index, value) {
        if (value == "false") {
            return false;
        }
        else if (value == "") {
            return false;
        }
        else {
            resultLists[index] = value;
        }
    });
    return resultLists;   
});
alert(TK.List.join("")) // not displaying

1 个答案:

答案 0 :(得分:0)

只需将var resultLists = [];视为全球。

然后在调用AJAX后设置计时器。一旦计时器到期,请执行

TK.List = resultsLists;

或者做这样的事情:

while(true){
    if(resultLists.length > 0) {
        break;
    }
}
TK.List = resultLists;

但请确保在$.each循环内部使用了局部变量,并仅在循环结束时分配给resultLists