我一直在嘗試對這個問題進行排序2天。但事情似乎並沒有爲我工作。jQuery Ajax - 不能在循環內工作
我附加的代碼在循環外工作得很好,但是當我在循環中使用它時,它根本無法按我想要的方式工作,並將空數組記錄到控制檯中。
另一方面,在我的ajax請求中使用「async:false」會使代碼正常工作,並在控制檯中輸出完全正常的數組,但正如你所知,使用「async:false」已被棄用,並完全凍結UI直到該請求未完成。
任何其他解決方案,而不是將async設置爲false?
for (var i = 0; i <= splittedURLSLength; i++) {
var extracted = extractUsername(splittedURLS[i]);
postData = {'name' : extracted};
ajaxRequest = $.when($.ajax({
url: "/check",
type: "POST",
data: postData
})).then(function(returnedResponse) {
if (returnedResponse == "1") {
resultsArray.push(extracted);
}
});
}
console.log(resultsArray);
第一個「一」,在「AJAX」代表「* *異步**」。您的數組可能正在填充(假設您沒有收到任何服務器錯誤),但console.log()調用將在HTTP請求完成之前發生。 – Pointy
異步調用在後臺繼續,而腳本繼續而不等待結果。 (這是簡化的,但應該足夠適用於您的問題) – Burki