jquery ajax success 函數 異步調用方法中不能給全局變量賦值的原因及解決辦法

在調用一個jquery的ajax方法時我們有時會需要該方法返回一個值或者給某個全局變量賦值,可是我們發現程序執行完后并沒有獲取到我們想要的值,這時很有可能是因為你用的是ajax的異步調用async:true(默認情況),如:

function ManageCommentText(text) {

var result = text;

$.ajax({

data: "get",

url: "GetComments.aspx",

data: "type=getText&commentText=" + text,

cache: false,

async: false,

success: function (data) {

result = data;

}

})

return result;

以上方法是ajax的同步調用,只有在獲取到了data值并賦值給result以后才會返回result完成該方法的調用。若設為async:true,

則會未等到獲取data值就已經返回了result。

另一個解決辦法就是將你的代碼直接寫到success方法里。(根據你的業務并不是所有的都可以直接寫到success里的)。

注意:如果設定為async: false,就失去 ajax異步的優點了哦。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容