在調用一個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異步的優勢了哦。jquery