[英]Change my function async: false to async: true with JQuery and Ajax
我在javascript類中做了一個功能,該類轉到php文件並從數據庫返回信息。
此函數確實很好用,但我嘗試使適當性異步:是的,但我的函數不適用於該適當性。 ( 我收到此警告消息是:XML的請求在應用程序主體執行時的同步作用,最終影響了實用程序的導航。 )
您有什么想法,我該如何運作? 一位朋友告訴我嘗試使用“回調”,但我不知道它是如何工作的。
getInfoFromDB: function() {
var info;
$.ajax({
url: "./fonctions/ajax/members.php",
type: "POST",
dataType: 'html',
success: function(data) {
info = data;
},
async: false,
});
return info;
}
您必須將getInfoFromDB()
更改為返回info
以外的內容。 例如,您可能會返回一個Promise
。 如果僅返回$.ajax()
的返回值,則會得到Promise
的東西來解析data
。
getInfoFromDB: function() {
return $.ajax({
url: "./fonctions/ajax/members.php",
type: "POST",
dataType: 'html',
});
}
但是隨后,您必須在所有調用getInfoFromDB()
地方進行更新,以支持異步行為。 例如:
myObject.getInfoFromDB().then(function (info) {
doSomethingWith(info);
});
從jQuery.ajax()
的文檔中:
$.ajax()
從jQuery 1.5開始由$.ajax()
返回的jqXHR對象實現Promise接口,為它們提供Promise的所有屬性,方法和行為(有關更多信息,請參見Deferred對象 )。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.