嘿,所有。我看來似乎是一個微不足道的問題。我有以下的JavaScript:jQuery:等待函數完成繼續處理?
$(function() {
var r = GetResults();
for(var i = 0; i < r.length; i++) {
// Do stuff with r
}
});
function GetResults() {
$.getJSON("/controller/method/", null, function(data) {
return data;
});
}
由於這樣的事實,我打電話的方法同步,則腳本繼續執行,當它遇到的for循環,r
顯然是不會有一個值呢。我的問題是:當我有一個正在執行異步操作的方法,並且依賴於返回到主塊的數據時,如何在數據返回之前暫停執行?類似於:
var r = GetResults(param, function() {
});
其中函數是回調函數。我無法將for循環處理移動到JSON請求的回調函數中,因爲我在整個頁面中多次重複使用GetResults的功能,除非我想複製代碼。有任何想法嗎?
謝謝你的答覆。我將GetResults分開的原因是我在整個頁面中多次重複使用該功能。我應該編輯我的帖子來說明。 – user135383
如果您需要對來自多個位置的數據執行相同的處理,只需使用命名函數替換回調函數並在那裏執行處理即可。 $ .getJSON(「/ controller/method /」,null,processData(data)); 函數processData(d){...} –