簡體   English   中英

如何從Ajax調用返回正確的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM