我希望我用正確的詞來描述這個問題....在這裏我已經定義了一個名爲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
你不能,所有需要訪問數據的代碼必須在完成的回調中。 –
也許你想[jQuery延期對象](http://api.jquery.com/jQuery.Deferred/)? – apsillers
我正在使用延遲... –