簡體   English   中英

將我的函數async:false更改為async:JQuery和Ajax為true

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

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