[英]How to return correct value from Ajax call
我想在函數中調用一個返回數組的API,並且我想知道數組的長度。 下面的代碼是一個粗略的實現。
function count() {
var count;
$.ajax({
url: "...",
success: function (array) {
count = array.length;
}
});
if (count >= 0) {
return count;
} else {
alert(count);
}
}
這不起作用,因為count不返回數組的長度,並且alert(count)返回undefined
,我該如何解決?
在異步響應返回之前,您將無法訪問count的值。 您的函數是同步的,在嘗試讀取它之前不會等待計數結果。 最簡單的解決方案是在成功回調中確定邏輯范圍:
function count() { var count; $.ajax({ url: "...", success: function (array) { count = array.length; if (count >= 0) { return count; } else { alert(count); } } }); }
UPDATE
為了簡單起見,我只是復制了return塊。 我沒有對其進行優化。 我的目的是表明使用success callback
是獲得響應的最快方法。 考慮一下這個JSFiddle 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.